Sistema de Solicitud de Usuarios para Empresas de Entrega Rápida o Courier

Visor y descarga de archivos técnicos para mensajes XML y esquema XSD.

XSD

Esquema XSD del manifiesto consolidado v1.0

Archivo de esquema principal para validar la estructura del manifiesto courier.

ConsolidatedCargoManifest.v.1.0.xsd 20.02 KB v1.0
Este documento corresponde a una versión preliminar 1.0 y está sujeto a cambios.
Vista previa del archivo
Contenido completo del documento
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2022 (x64) (http://www.altova.com) by Florencio Antonio Vasquez (Crimsonlogic Panamá Inc.) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.example.org/CargoManifest" targetNamespace="http://www.example.org/CargoManifest" elementFormDefault="qualified">
	<xs:element name="ConsolidatedCargoManifest">
		<xs:complexType>
			<xs:sequence>
				<!-- HEADER DEL MANIFIESTO -->
				<xs:element name="ManifestHeader">
					<xs:complexType>
						<xs:sequence>
							<!-- No conocimiento de embarque aereo madre -->
							<xs:element name="MasterAirWaybillNumber" type="ns1:AirWaybillNumberType"/>
							<!-- fecha del conocimiento de embarque aereo madre -->
							<xs:element name="MasterAirWaybillIssueDate" type="xs:date"/>
							<!-- No de manifiesto courier -->
							<!-- Estado -->
							<!-- tipo de manifiesto -->
							<!-- modo de transportacion -->
							<!-- fecha de manifiesto -->
							<xs:element name="IssueDate" type="xs:dateTime" minOccurs="0"/>
							<!-- fecha prevista de llegada -->
							<xs:element name="EstimatedArrivalDateTime" type="xs:dateTime" minOccurs="0"/>
							<!-- Puerto de Descarga -->
							<xs:element name="PortOfUnloading" type="ns1:AirportCodeType" minOccurs="0"/>
							<!-- Lugar de Salida -->
							<xs:element name="PlaceOfDeparture" type="ns1:AirportCodeType" minOccurs="0"/>
							<!-- Lugar de Destino -->
							<xs:element name="PlaceOfDestination" type="ns1:AirportCodeType" minOccurs="0"/>
							<!-- Cantidad de Conocimiento de embarque aereo courier -->
							<xs:element name="TotalHouseWaybillCount" type="xs:positiveInteger" minOccurs="0"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="TransportSegment">
					<xs:complexType>
						<xs:sequence>
							<!-- Carrier Details -->
							<xs:element name="Carrier">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="AirlineID" type="ns1:AirlineIDType" minOccurs="0"/>
										<xs:element name="Name" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="ns1:NameType">
													<xs:maxLength value="35"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<!-- Flight Details -->
							<xs:element name="Flight">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="FlightNumber" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="ns1:FlightNumberType"/>
											</xs:simpleType>
										</xs:element>
										<xs:element name="AircraftRegistration" type="ns1:RegistrationNumberType"/>
										<xs:element name="AircraftType" type="ns1:AircraftTypeType"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<!-- Aircraft Registration Country -->
							<xs:element name="RegistrationCountry" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="CountryCode" type="ns1:CountryCodeType" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<!-- Tab Factura -->
				<xs:element name="Invoice" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<!-- Número de factura -->
							<xs:element name="ID" type="ns1:InvoiceNumberType"/>
							<!-- Fecha de factura -->
							<xs:element name="IssueDateTime" type="xs:date"/>
							<!-- Monto total de la factura -->
							<xs:element name="GrandChargeAmount" type="ns1:AmountType"/>
							<!-- Moneda 
                            <xs:element name="Currency" type="CurrencyCodeType"/>-->
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<!-- Conocimiento de Embarque -->
				<xs:element name="HouseWaybill" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="HouseWayBillHeader">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="DocumentType" type="ns1:DocumentTypeType"/>
										<xs:element name="AirWaybillNumber" type="ns1:AwbNumberType"/>
										<xs:element name="IssueDate" type="xs:date"/>
										<xs:element name="MasterAirWaybillNumber" type="ns1:AwbNumberType"/>
										<xs:element name="MasterAirWaybillDate" type="xs:date"/>
										<xs:element name="ProcessingIndicator" type="ns1:ProcessingIndicatorType"/>
										<xs:element name="TrackingID" type="ns1:TrackingIDType"/>
										<xs:element name="TotalPieceCount" type="ns1:WeightType"/>
										<xs:element name="PackageCode" type="ns1:WeightType"/>
										<xs:element name="GrossWeight" type="ns1:WeightType"/>
										<xs:element name="TotalPrepaidAmount" type="ns1:TotalType"/>
										<xs:element name="TotalInsuranceAmount" type="ns1:TotalType"/>
										<xs:element name="WoodPackagingIndicator" type="xs:boolean" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="PartiesInformation">
								<xs:complexType>
									<xs:sequence>
										<!-- Exportador -->
										<xs:element name="Exporter">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Name" type="ns1:NameType02"/>
													<xs:element name="RegistrationNumber" type="ns1:RegistrationNumberType02" minOccurs="0"/>
													<xs:element name="Address" type="ns1:AddressType02"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<!-- Consignatario -->
										<xs:element name="Consignee">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Name" type="ns1:NameType02"/>
													<xs:element name="RegistrationNumber" type="ns1:RegistrationNumberType02"/>
													<xs:element name="Address" type="ns1:AddressType02"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<!-- Notificador -->
										<xs:element name="NotifyParty" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Name" type="ns1:NameType02"/>
													<xs:element name="Address" type="ns1:AddressType02"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="LocationDetails">
								<xs:complexType>
									<xs:sequence>
										<!-- Información de procedencia -->
										<xs:element name="OriginLocation">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="CountryCode" type="ns1:CountryCodeType"/>
													<xs:element name="PortCode" type="ns1:AirportCodeType02"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<!-- Información de salida -->
										<xs:element name="DepartureLocation">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="CountryCode" type="ns1:CountryCodeType"/>
													<xs:element name="PortCode" type="ns1:AirportCodeType02"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<!-- Información de destino -->
										<xs:element name="DestinationLocation">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="CountryCode" type="ns1:CountryCodeType"/>
													<xs:element name="PortCode" type="ns1:AirportCodeType02"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<!-- Información de tránsito/trasbordo (puede haber múltiples) -->
										<xs:element name="TransitLocation" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="CountryCode" type="ns1:CountryCodeType"/>
													<xs:element name="PortCode" type="ns1:AirportCodeType02"/>
													<xs:element name="SequenceNumber" type="xs:positiveInteger" minOccurs="0"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<!-- Lista de Articulos -->
							<xs:element name="GoodsItemList">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="GoodsItem" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<!-- Código arancelario -->
													<xs:element name="HSCode" type="ns1:HSCodeType"/>
													<!-- Categorización -->
													<xs:element name="CargoCategory" type="ns1:CargoCategoryType"/>
													<!-- Descripción de la mercancía -->
													<xs:element name="Description" type="ns1:DescriptionType"/>
													<!-- Tipo artículo -->
													<xs:element name="CargoType" type="ns1:CargoTypeCodeType"/>
													<!-- Código del país -->
													<xs:element name="OriginCountryCode" type="ns1:CountryCodeType"/>
													<!-- Cantidad manifestada -->
													<xs:element name="ManifestedQuantity">
														<xs:simpleType>
															<xs:restriction base="ns1:Number18Type">
																<xs:fractionDigits value="0"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<!-- Unidad cantidad -->
													<xs:element name="QuantityUnit" type="ns1:Number15Type"/>
													<!-- Peso bruto -->
													<xs:element name="GrossWeight" type="ns1:Number18Type"/>
													<!-- Naturaleza de la carga -->
													<xs:element name="CargoNature" type="ns1:Number15Type"/>
													<!-- Valor total del FOB -->
													<xs:element name="FOBValue" type="ns1:FOBType"/>
													<!-- Número ONU -->
													<xs:element name="UNNumber" type="ns1:UNNumberTypeString"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- Tipos de datos específicos -->
	<xs:simpleType name="ManifestNumberType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="35"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AirWaybillNumberType">
		<xs:restriction base="xs:string">
			<xs:minLength value="0"/>
			<xs:maxLength value="70"/>
			<xs:pattern value="[0-9]{3}-[0-9]{8}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="StatusType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="DRA"/>
			<xs:enumeration value="SUB"/>
			<xs:enumeration value="CAN"/>
			<xs:enumeration value="AME"/>
			<xs:enumeration value="PEN"/>
		</xs:restriction>
	</xs:simpleType>
	<!--<xs:simpleType name="ManifestTypeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="COURIER"/>
			<xs:enumeration value="GENERAL"/>
			<xs:enumeration value="DANGEROUS_GOODS"/>
			<xs:enumeration value="PERISHABLE"/>
			<xs:enumeration value="LIVE_ANIMALS"/>
		</xs:restriction>
	</xs:simpleType>-->
	<xs:simpleType name="TransportModeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AIR"/>
			<xs:enumeration value="SEA"/>
			<xs:enumeration value="LAN"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AirportCodeType">
		<xs:restriction base="xs:string">
			<xs:length value="3"/>
			<xs:pattern value="[A-Z]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AirportCodeType02">
		<xs:restriction base="xs:string">
			<xs:maxLength value="35"/>
			<xs:pattern value="[A-Z]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- For TransportSegment -->
	<xs:simpleType name="AirlineIDType">
		<xs:restriction base="xs:string">
			<xs:minLength value="0"/>
			<xs:maxLength value="70"/>
			<xs:pattern value="[A-Z0-9]{2,3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NameType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="70"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NameType02">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="256"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="FlightNumberType">
		<xs:restriction base="xs:string">
			<xs:minLength value="0"/>
			<xs:maxLength value="17"/>
			<xs:pattern value="[A-Z0-9]{1,4}[0-9]{1,4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TransportRegistrationNumberType">
		<xs:restriction base="xs:string">
			<xs:minLength value="2"/>
			<xs:maxLength value="15"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AircraftTypeType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="10"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CountryCodeType">
		<xs:restriction base="xs:string">
			<xs:length value="2"/>
			<xs:pattern value="[A-Z]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- For Factura -->
	<xs:simpleType name="InvoiceNumberType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="20"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DateTimeType">
		<xs:restriction base="xs:dateTime"/>
	</xs:simpleType>
	<xs:simpleType name="AmountType">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="15"/>
			<xs:fractionDigits value="6"/>
			<xs:minInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CurrencyCodeType">
		<xs:restriction base="xs:string">
			<xs:length value="3"/>
			<xs:pattern value="[A-Z]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- For: HouseWaybill  -->
	<xs:simpleType name="DocumentTypeType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="3"/>
			<xs:enumeration value="DRA"/>
			<xs:enumeration value="SUB"/>
			<xs:enumeration value="CAN"/>
			<xs:enumeration value="AME"/>
			<xs:enumeration value="PEN"/>
		</xs:restriction>
		<!--DMA1 -->
	</xs:simpleType>
	<xs:simpleType name="AwbNumberType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="70"/>
			<xs:pattern value="[0-9]{3}-[0-9]{8}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ProcessingIndicatorType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="22"/>
			<xs:enumeration value="23"/>
			<xs:enumeration value="24"/>
			<xs:enumeration value="28"/>
			<xs:enumeration value="19"/>
			<xs:enumeration value="FZ/"/>
			<xs:enumeration value="C"/>
			<!-- EXPORT -->
			<!-- IMPORT -->
			<!-- TRANSIT -->
			<!-- TRANSHIPMENT -->
			<!-- BULK_GOODS -->
			<!-- FREE_ZONE -->
			<!-- COURIER -->
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TrackingIDType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="20"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PackageCodeType">
		<xs:restriction base="xs:string">
			<xs:minLength value="2"/>
			<xs:maxLength value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Informacion de Partes -->
	<xs:simpleType name="RegistrationNumberType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="70"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RegistrationNumberType02">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="35"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="AddressType">
		<xs:sequence>
			<xs:element name="Street" type="ns1:StreetType" minOccurs="0"/>
			<xs:element name="City" type="ns1:CityType"/>
			<xs:element name="PostalCode" type="ns1:PostalCodeType" minOccurs="0"/>
			<xs:element name="CountryCode" type="ns1:CountryCodeType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="AddressType02">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="512"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="StreetType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="100"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CityType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="50"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PostalCodeType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="10"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Lista de Articulos -->
	<xs:simpleType name="HSCodeType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="20"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UNNumberType">
		<xs:restriction base="xs:string">
			<xs:length value="4"/>
			<xs:pattern value="[0-9]{4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CargoTypeCodeType">
		<xs:restriction base="xs:string">
			<xs:length value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DescriptionType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="195"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CargoCategoryType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="1"/>
			<xs:enumeration value="A"/>
			<xs:enumeration value="B"/>
			<xs:enumeration value="C"/>
			<xs:enumeration value="D"/>
			<!-- CONTAINER -->
			<!-- BULK -->
			<!-- MIXED -->
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="QuantityUnitCodeType">
		<xs:restriction base="xs:string">
			<!-- too many values -->
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CargoNatureType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DocumentStatusType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="MAS"/>
			<xs:enumeration value="SUP"/>
			<!-- MASTER -->
			<!-- SUPPLEMENT -->
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ManifestTypeCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="IMP"/>
			<xs:enumeration value="EXP"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TransportModeCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AIR"/>
			<xs:enumeration value="SEA"/>
			<xs:enumeration value="LAND"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="WeightType">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="18"/>
			<xs:fractionDigits value="3"/>
			<xs:minInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="FOBType">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="12"/>
			<xs:fractionDigits value="3"/>
			<xs:minInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TotalType">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="12"/>
			<xs:fractionDigits value="2"/>
			<xs:minInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Number18Type">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="18"/>
			<xs:fractionDigits value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Number15Type">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="15"/>
			<xs:fractionDigits value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UNNumberTypeString">
		<xs:restriction base="xs:string">
			<xs:maxLength value="15"/>
		</xs:restriction>
	</xs:simpleType>
	<!--<xs:simpleType name="CargoNatureType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="BIO"/>
			<xs:enumeration value="CHE"/>
			<xs:enumeration value="TOX"/>
			<xs:enumeration value="PER"/>
			<xs:enumeration value="EXP"/>
			<xs:enumeration value="OTH"/>
		</xs:restriction>
	</xs:simpleType>-->
</xs:schema>