Visor y descarga de archivos técnicos para mensajes XML y esquema XSD.
Archivo de esquema principal para validar la estructura del manifiesto courier.
<?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>