diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index a26ad426..24361d0a 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/2016_11_01_Legende.xlsx b/nsw/2016_11_01_Legende.xlsx deleted file mode 100644 index d7c278d1..00000000 Binary files a/nsw/2016_11_01_Legende.xlsx and /dev/null differ diff --git a/nsw/2016_11_03_BSMD-Formblatt.xlsx b/nsw/2016_11_03_BSMD-Formblatt.xlsx deleted file mode 100644 index 08508b59..00000000 Binary files a/nsw/2016_11_03_BSMD-Formblatt.xlsx and /dev/null differ diff --git a/nsw/BSMD-Formblatt.xlsx b/nsw/BSMD-Formblatt.xlsx index 211d4aa1..447c5e0f 100644 Binary files a/nsw/BSMD-Formblatt.xlsx and b/nsw/BSMD-Formblatt.xlsx differ diff --git a/nsw/Deutschland/BSMD-Formblatt.xlsx b/nsw/Deutschland/BSMD-Formblatt.xlsx deleted file mode 100644 index 3a78d9ea..00000000 Binary files a/nsw/Deutschland/BSMD-Formblatt.xlsx and /dev/null differ diff --git a/nsw/Deutschland/BSMD-Formblatt.xltx b/nsw/Deutschland/BSMD-Formblatt.xltx deleted file mode 100644 index 37b88704..00000000 Binary files a/nsw/Deutschland/BSMD-Formblatt.xltx and /dev/null differ diff --git a/nsw/Deutschland/Legende.xlsx b/nsw/Deutschland/Legende.xlsx index 3979e1c8..22dea40d 100644 Binary files a/nsw/Deutschland/Legende.xlsx and b/nsw/Deutschland/Legende.xlsx differ diff --git a/nsw/Deutschland/Reference Sheet_DE.xlsx b/nsw/Deutschland/Reference Sheet_DE.xlsx new file mode 100644 index 00000000..19982a8c Binary files /dev/null and b/nsw/Deutschland/Reference Sheet_DE.xlsx differ diff --git a/nsw/Deutschland/Reference Sheet_DE.xltx b/nsw/Deutschland/Reference Sheet_DE.xltx new file mode 100644 index 00000000..076ab312 Binary files /dev/null and b/nsw/Deutschland/Reference Sheet_DE.xltx differ diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs index 62839259..35d07040 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs @@ -225,6 +225,25 @@ namespace bsmd.ExcelReadService return result; } + internal byte? ReadCargoHandlingType(string lookup) + { + string val = this.ReadText(lookup); + byte? result = null; + + if(val != null) + { + if (val.IndexOf("load", StringComparison.OrdinalIgnoreCase) >= 0) result = 0; + if (val.IndexOf("discharge", StringComparison.OrdinalIgnoreCase) >= 0) result = 1; + if (val.IndexOf("transit", StringComparison.OrdinalIgnoreCase) >= 0) result = 2; + if (result == null) + this.Conf.ConfirmText(lookup, val, ReadState.WARN); + else + this.Conf.ConfirmText(lookup, val, ReadState.OK); + } + + return result; + } + /// /// read nationality field an returns 2 Char ISO code (optional lookup) and "confirms" /// the field diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs index 5eaf54e7..6dd32e2e 100644 --- a/nsw/Source/bsmd.ExcelReadService/Util.cs +++ b/nsw/Source/bsmd.ExcelReadService/Util.cs @@ -760,7 +760,7 @@ namespace bsmd.ExcelReadService { string ibc_productName = string.Format("HAZD.IBC.ProductName_{0}", i); string ibc_pollutionCategory = string.Format("HAZD.IBC.PollutionCategory_{0}", i); - string ibc_flash = string.Format("HAZD.IBC.FlashpointInformation_{0}", i); + string ibc_flash = string.Format("HAZD.IBC.Flashpoint_CEL_{0}", i); string ibc_quantity = string.Format("HAZD.IBC.Quantity_KGM_{0}", i); string ibc_stowagePosition = string.Format("HAZD.IBC.StowagePosition_{0}", i); string ibc_portOfLoading = string.Format("HAZD.IBC.PortOfLoading_{0}", i); @@ -966,7 +966,7 @@ namespace bsmd.ExcelReadService STAT stat = statMessage.Elements[0] as STAT; Util.ScanMessage(stat, reader); stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber"); - reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, (stat.MMSINumber.IsNullOrEmpty() || (stat.MMSINumber.Length != 7)) ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); + reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, (stat.MMSINumber.IsNullOrEmpty() || (stat.MMSINumber.Length != 9)) ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId"); if(!stat.ISMCompanyId.IsNullOrEmpty() && stat.ISMCompanyId.Length < 7) @@ -1216,7 +1216,9 @@ namespace bsmd.ExcelReadService if (reader.Mode == ExcelReader.CountryMode.DE) { - reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplayV4, ExcelReader.ReadState.OK); + waste.WasteType = i; // remove for V4 + // change for V4 + reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplay, ExcelReader.ReadState.OK); reader.Conf.ConfirmNumber(wasteCode, waste.WasteType, ExcelReader.ReadState.OK); } else if (reader.Mode == ExcelReader.CountryMode.DK) @@ -1935,16 +1937,7 @@ namespace bsmd.ExcelReadService ladgMessage.Elements.Add(ladg); } - string handlingTypeString = reader.ReadText(lnCHT); - if (!handlingTypeString.IsNullOrEmpty()) - { - // irgendwas mit "*load*" drin wird load, alles andere discharge - ladg.CargoHandlingType = handlingTypeString.Contains("load", StringComparison.InvariantCultureIgnoreCase) ? (byte) 0 : (byte) 1; - reader.Conf.ConfirmText(lnCHT, handlingTypeString, ExcelReader.ReadState.OK); - } else - { - reader.Conf.ConfirmText(lnCHT, handlingTypeString, ExcelReader.ReadState.WARN); - } + ladg.CargoHandlingType = reader.ReadCargoHandlingType(lnCHT); ladg.CargoCodeNST = reader.ReadText(lnType); // Cargo Type Freitext in DK diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index 1cd7e34f..da7b1274 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("Informatikbüro Daniel Schick")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("3.3.12")] +[assembly: AssemblyInformationalVersion("3.3.13")] [assembly: AssemblyCopyright("Copyright © 2014-2017 Informatikbüro Daniel Schick. All rights reserved.")] [assembly: AssemblyTrademark("")] \ No newline at end of file diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs index cc44f407..e2221698 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("3.3.12.*")] +[assembly: AssemblyVersion("3.3.13.*")] diff --git a/nsw/Source/bsmd.dbh/Request.cs b/nsw/Source/bsmd.dbh/Request.cs index 378a3cb6..c7ba309c 100644 --- a/nsw/Source/bsmd.dbh/Request.cs +++ b/nsw/Source/bsmd.dbh/Request.cs @@ -591,20 +591,25 @@ namespace bsmd.dbh case Message.NotificationClass.LADG: { RootLADG rootLADG = new RootLADG(); - rootLADG.Cargo = new RootLADGCargo[message.Elements.Count]; + List cargoList = new List(); for (int i = 0; i < message.Elements.Count; i++ ) { LADG ladg = message.Elements[i] as LADG; - rootLADG.Cargo[i] = new RootLADGCargo(); - if(ladg.CargoHandlingType.HasValue) - rootLADG.Cargo[i].CargoHandlingType = (HandlingType)(ladg.CargoHandlingType); - rootLADG.Cargo[i].CargoCodeNST = ladg.CargoCodeNST; + RootLADGCargo cargo = new RootLADGCargo(); + if (ladg.CargoHandlingType.HasValue) + { + if (ladg.CargoHandlingType > 1) continue; + cargo.CargoHandlingType = (HandlingType)(ladg.CargoHandlingType); + } + cargo.CargoCodeNST = ladg.CargoCodeNST; if (ladg.CargoGrossQuantity_TNE.HasValue) - rootLADG.Cargo[i].CargoGrossQuantity_TNE = Decimal.Round((decimal) ladg.CargoGrossQuantity_TNE.Value, 3); - rootLADG.Cargo[i].CargoNumberOfItemsSpecified = ladg.CargoNumberOfItems.HasValue; + cargo.CargoGrossQuantity_TNE = Decimal.Round((decimal) ladg.CargoGrossQuantity_TNE.Value, 3); + cargo.CargoNumberOfItemsSpecified = ladg.CargoNumberOfItems.HasValue; if (ladg.CargoNumberOfItems.HasValue) - rootLADG.Cargo[i].CargoNumberOfItems = ladg.CargoNumberOfItems.Value; + cargo.CargoNumberOfItems = ladg.CargoNumberOfItems.Value; + cargoList.Add(cargo); } + rootLADG.Cargo = cargoList.ToArray(); item = rootLADG; } break; diff --git a/nsw/Source/bsmd.dbh/packages.config b/nsw/Source/bsmd.dbh/packages.config new file mode 100644 index 00000000..31743570 --- /dev/null +++ b/nsw/Source/bsmd.dbh/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/nsw/dbh/NSWRequest V4.0 2016-11-15.xsd b/nsw/dbh/NSWRequest V4.0 2016-11-15.xsd new file mode 100644 index 00000000..c9ac6465 --- /dev/null +++ b/nsw/dbh/NSWRequest V4.0 2016-11-15.xsd @@ -0,0 +1,3063 @@ + + + + + + XSD for communication from reporter to ANSW. + + + + + + Version number of schema + + + + + + + + + + Version information of the source (e.g. file or document) from which the data of this message originates + + + + + + + + Timestamp, when the message is sent + + + + + The sender's ZKV number. + + + + + + + + + + A customer reference that can be freely filled and will be send back in the following response. No checks are made on this field. When a new Visit- or TransitId is obtained, it should be used as a reference to match the response to its corresponding request. + + + + + + + + + + + The message type: +- VISIT: Creates a new declaration with the application for a VisitId. It's allowed to send further data in one or more reporting classes +- TRANSIT: same with TransitId +- DATA: Only data for one or more reporting classes are included +- RESET: The data of one or more reporting classes are deleted +- CANCEL: The whole declaration is cancelled + + + + + + + + + + + + + + + Required when TransitId is missing and field "Type" is not "VISIT or "TRANSIT" + + + + + Reporting class to obtain a VisitId. Required when the value of the field "Type" is "VISIT". Ignored in all other cases. + + + + + + + IMO number (required, if ENI number is ommited). Will result in Error 102 if the provided IMO number is not valid. + + + + + ENI number (required, if IMO number is ommited) + + + + + + UNECE LOCODE of Port of Call. Will result in Error 101 if the provided port of call is not in the list of German seaports. + + + + + Estimated Time of Arrival at Port of Call (ETA-PoC) - (YYYY-MM-DD with optional time value using GMT timezone) + + + + + + + + Required when VisitId is missing and field "Type" is not "VISIT or "TRANSIT" + + + + + Reporting class to obtain a TransitId. Required when the value of the field "Type" is "TRANSIT". Ignored in all other cases. + + + + + + + IMO number (required, if ENI number is ommited). Will result in Error 102 if the provided IMO number is not valid. + + + + + ENI number (required, if IMO number is ommited) + + + + + + Estimated Time of Arrival at Kiel-Canal Lock (ETA-NOK) - (YYYY-MM-DD with optional time value using GMT timezone) + + + + + + + + + A list of SIS numbers. An empty list means that all sent numbers will be deleted. Sending a new list overwrites existing ones completely. + + + + + + One SIS number + + + + + + + + + + + + + Reporter data + + + + + + Alle reporting classes that are to be reseted. Needs Type=RESET + + + + + + One reporting class that shall be reseted. + + + + + + + + + Agent (reporting class) + + + + + + + Name of ship agency + + + + + Street, Number + + + + + Postal code + + + + + City + + + + + Country + + + + + Last name + + + + + First name + + + + + Phone + + + + + Fax + + + + + E-Mail + + + + + + + + Notification of arrival/departure (reporting class) + + + + + + Reporter data + + + + + Part needed for a Visit + + + + + Estimated Time of Arrival (ETA-PoC) (YYYY-MM-DDThh:mm:ssTZD in UTC / TZD = time zone designator (Z or +hh:mm or -hh:mm) + + + + + Estimated Time of Departure (ETD-PoC) (YYYY-MM-DDThh:mm:ssTZD in UTC / TZD = time zone designator (Z or +hh:mm or -hh:mm). Will result in Error 121 if ETD-PoC ≤ ETA- PoC) + + + + + Purpose of call for PoC + + + + + + 1 - 999 + + + + + + + + + + + Description + + + + + + + + + + + + + + + + Estimated Time of Arrival (ETA-NOK) (YYYY-MM-DDThh:mm:ssTZD in UTC) + + + + + Estimated Time of Departure (ETD-NOK) (YYYY-MM-DDThh:mm:ssTZD in UTC). Will result in Error 123 if ETD-NOK ≤ ETA- NOK. + + + + + + + Last Port (LP) as UNECE LOCODE or ZZUKN if unknown + + + + + Estimated Time of Departure Last Port (ETD-LP). Required when LP is given and not ZZUKN (YYYY-MM-DDThh:mm:ssTZD in UTC). Will result in Error 125 if omitted or empty. + + + + + Next Port (NP) as UNECE LOCODE or ZZUKN if unknown + + + + + Estimated Time of Arrival Next Port (ETA-NP). Required when NP is given and not ZZUKN (YYYY-MM-DDThh:mm:ssTZD in UTC). Will result in Error 122 if ETD-PoC ≥ ETA NP. Will result in Error 124 if field is omitted or left emtpy and NextPort ≠ "ZZUKN". + + + + + + + + Actual Time of Arrival (reporting class) + + + + + + Reporter data + + + + + Actual Time of Arrival (ATA) at first port facility in port of call (YYYY-MM-DDThh:mm:ssTZD). +The provided value must not be more than 15 minutes in the future, otherwise Violation 141 will occur. +If ATA is notified before any voyage information was provided via NOA_NOD, Violation 861 will occur. + + + + + + + + Actual Time of Departure (reporting class) + + + + + + Reporter data + + + + + Actual Time of Departure (ATD) from last port facility in port of call (YYYY-MM-DDThh:mm:ssTZD). +The provided value must not be more than 15 minutes in the future, otherwise Violation 141 will occur. +If ATD is notified before any voyage information was provided via NOA_NOD, Violation 881 will occur. +If ATD is notified before ATA was provided, Violation 882 will occur. + + + + + + + + Sea security (reporting class) + + + + + + Reporter data + + + + + Information about a planned Kiel Canal Passage. +This attribute is only applicable for a port call (VISIT). If it is provided for a TRANSIT, Violation 705 occurs. + + + + + + Identification for a planned Kiel-Canal passage (fixed value Y) + + + + + Estimated Time of Arrival at Kiel-Canal Lock (ETA-NOK) - Date incoming journey to PortOfCall. Mandatory if KielCanalPassagePlanned=Y and KielCanalPassagePlannedOutgoing is empty. +If neither KielCanalPassagePlannedIncoming nor KielCanalPassagePlannedOutgoing is provided, Violation 706 occurs. + + + + + + + Estimated Time of Arrival at Kiel-Canal Lock (ETA-NOK) - Date outgoing journey from PortOfCall. Mandatory if KielCanalPassagePlanned=Y and KielCanalPassagePlannedIncoming is empty. +If neither KielCanalPassagePlannedIncoming nor KielCanalPassagePlannedOutgoing is provided, Violation 706 occurs. + + + + + + + + + Current ship security level (1-3) + + + + + + It's possible to simplify this reporting class by just giving the German port where the full information have been yielded already and nothing has changed since then. + + + + Identification for a simplified report (fixed value Y) + + + + + PortofCall where the complete information was notified (requires the LOCODE of a german seaport, otherwise Violation 704 will occur) + + + + + + Full SEC report + + + + CSOLastName + + + + + CSO first name + + + + + CSO Telephone + + + + + CSO Fax + + + + + CSO E-Mail + + + + + Valid ISSC on board (y/n) + + + + + + + + Required if ValidISSCOnBoard = N. Will result in Violation 702 if omitted or empty + + + + + ISSC type (full or interim) + + + + + ISSC issuer type (Adminstration or Recognized Security Organization) + + + + + + Date of expiration ISSC (YYYY-MM-DD) + + + + + Approved security plan on board (y/n) + + + + + + + + Port facility of arrival (if known) + + + + + General description of cargo (container, vehivles, conventional general cargo, dry cargo in bulk, liquid cargo in bulk or empty) + + + + + Last 10 port facilities called. + + + + + + Port name. Either port name and country or the LOCODE must be given or Violation 703 will occur. + + + + + Country where port is located. Either port name and country or the LOCODE must be given or Violation 703 will occur. + + + + + LoCode of port where port facility is located (UNECE LOCODE). Either port name and country or the LOCODE must be given or Violation 703 will occur. + + + + + Date of arrival at port facility (YYYY-MM-DD) + + + + + Date of departure from port facility (YYYY-MM-DD) + + + + + Ship security level at port facility (1-3) + + + + + Any security matters to report + + + + + Port facility's code in the IMO GISIS maritime security database (ISPS) + + + + + + + + List of ship-to-ship acitivities + + + + + + At least one Location element must be provided (LoCode, Latitude/Longitude or LocationName). Will result in Violation 701 if omitted or empty. + + + + + + Location name + + + + + Location LoCode (UNECE LOCODE) + + + + + + + + Latitude in 1/10000 min. (+/- 90 degrees; North = positive; South = negative; 91 = not available).Examples: 91° (north) -&gt; 54600000 / -90° (south) -&gt; -54000000 / 0°0’1” (north) -&gt; 167 / 50°50’ (north) -&gt; 30500000 + + + + + Longitude in 1/10000 min. (+/- 180 degrees; East = positive; West = negative; 181 = not available). Examples: 181° (east) -> 108600000 / -180° (west) -> -108000000 / 0°0’1” (east) -> 167 / 4°20’ (east) -> 2600000 + + + + + + + + + + + Date from (YYYY-MM-DD in GMT) + + + + + Date to (YYYY-MM-DD in GMT) + + + + + Ship-to-ship-activity, coded. +Use one of the codes specifying the purpose of the conveyance call declared in UN/EDIFACT DataElement 8025 (http://www.unece.org/trade/untdid/d01a/tred/tred8025.htm). + + + + + + + + + + + + + + + + + + + + Persons on board upon arrival (reporting class) + + + + + + Reporter data + + + + + Number of persons on board upon arrival + + + + + + + + + + + Number of crew members on board upon arrival + + + + + + + + + + Number of passengers on board upon arrival + + + + + + + + + + Number of stowaways on board upon arrival + + + + + + + + + + + + + Persons on board upon departure (reporting class) + + + + + + Reporter data + + + + + Number of persons on board upon departure + + + + + + + + + + + Number of crew members on board upon departure + + + + + + + + + + Number of passengers on board upon departure + + + + + + + + + + Number of stowaways on board upon departure + + + + + + + + + + + + + Name of the captain (reporting class) + + + + + + Reporter data + + + + + Name of master + + + + + + + + Draught on arrival (reporting class) + + + + + + Reporter data + + + + + Draught on arrival in decimetre (DMT) + + + + + + + + Draught on departure (reporting class) + + + + + + Reporter data + + + + + Draught on departure in decimetre (DMT) + + + + + + + + Bunker fuel on arrival (reporting class) + + + + + + Reporter data + + + + + Bunker fuel on arrival + + + + + + Name / Type of bunker fuel + + + + + Quantity of bunker fuel per type in tons (TNE) + + + + + + + + + + + Bunker fuel on departure (reporting class) + + + + + + Reporter data + + + + + Bunker fuel on departure + + + + + + Name / Type of bunker fuel + + + + + Quantity of bunker fuel per type in tons (TNE) + + + + + + + + + + + Vessel details (reporting class) + + + + + + Reporter data + + + + + Ship name + + + + + Callsign + + + + + MMSI number + + + + + Flag: Alpha-2 code (two-digits flag code) in accordance with the standard ISO 3166-0 + + + + + + + + + + + Length overall in meters (MTR) + + + + + Beam in meters (MTR) + + + + + Gross tonnage + + + + + + + + + + Port of registry (UNECE LOCODE) + + + + + Inmarsat call number + + + + + Transportmode according to UNECE Rec 19 (Maritime transport (1) / Inland water transport (8)) + + + + + + + + + + + Ship type (UNECE Rec 28.) + + + + + + + + + + + + ISM company information. Must be provided when GrossTonnage >= 500 or Violation 821 will occur. + + + + + + ISM name of company . The information is contained in the "Document of Compliance (DOC)" in accordance with IMO Resolution A. 741 (18) (ISM Code). + + + + + ISM company identification number. The information is contained in the "Document of Compliance (DOC)" in accordance with IMO Resolution A. 741 (18) (ISM Code). + + + + + + + + + + ISM Street, Number + + + + + ISM Postal code + + + + + ISM City + + + + + ISM Country + + + + + + + + + + + Cargo information (reporting class) + + + + + + Reporter data + + + + + Per type of cargo that is moved in Port of call. + + + + + + Cargo handling type (load or discharge) + + + + + Cargo type code according to the key list of cargo types and units + + + + + + + + + + + Division code of cargo according to NST-2007 + + + + + + + + + + Group code of cargo according to NST-2007 (3rd digit after the "." (dot) of the group code only!) + + + + + + + + + + Cargo quantity. Required if CargoCodeNST equals 11, 12, 16 or 19 (see Cargo catalogue Attachment 1 - NST2007). Throws Violation 721 if field is omitted of empty. + + + + + + + + + + Gross quantity in tons (TNE) + + + + + LoCode of port where the cargo was loaded on board (UNECE LOCODE) or ZZUKN if unknown + + + + + LoCode of port where the cargo will be discharged (UNECE LOCODE) or ZZUKN if unknown + + + + + + + + + + + Information (reporting class) + + + + + + Reporter data + + + + + Shipping area (North sea/baltic sea, europe, overseas) + + + + + Port area + + + + + Position of ship in port of call + + + + + Special requirements of ship (at berth) + + + + + Special construction characteristics of ship + + + + + Power of BowThruster + + + + + Power of SternThruster + + + + + Fumigated bulk cargo (y/n) + + + + + + + + + + + Dead weight summer in tons (TNE). + + + + + + + + Services (reporting class) + + + + + + Reporter data + + + + + Service type + + + + + + Name of service + + + + + Beneficiary + + + + + Invoice recipient + + + + + + + + + + + 72 hour Preannouncement (reporting class) + + + + + + Reporter data + + + + + Is it a tanker (y/n) + + + + + Tanker details. Required if Tanker =Y or will result in Violation 741 if otherwise omitted or left empty. + + + + + + Tanker hull configuration (single hull, single hull with separatied ballast tanks, double hull) + + + + + Condition of cargo and ballast tanks (full, empty, inerted) + + + + + Nature of cargo + + + + + Volume of cargo in tons (TNE) + + + + + + + + Planned operations: loading, discharging, others + + + + + Planned inspection / works + + + + + Date of last expanded inspection + + + + + Planned period of stay in hours (HUR) + + + + + + + + Declaration of health (reporting class) + + + + + + Reporter data + + + + + + It's possible to simplify this reporting class by just giving the German port where the full information have been yielded already and nothing has changed since then. + + + + Identification for a simplified report (fixed value Y) + + + + + PortofCall where the complete information was notified (requires the LOCODE of a german seaport, otherwise Violation 768 will occur). + + + + + + + + + + + + + Has any person died on board during the voyage otherwise than as a result of accident? (y/n) + + + + + Number of deaths. Required if NonAccidentialDeathsDuringVoyage is filled with Y, otherwise Violation 761 will occur. + + + + + + + + + + Is there on board or has there been during the international voyage any case of disease which you suspect to be of an infectious nature? (y/n) + + + + + Total number of ill passengers greater than normal/expected (y/n) + + + + + Number of ill persons. Required if NumberOfIllPersonsHigherThanExpected is filled with Y, otherwise Violation 762 will occur. + + + + + + + + + + Sick persons on board (y/n) + + + + + Was a medical practitioner consulted? (y/n) + + + + + Are you aware of any condition on board which may lead to further infections? (y/n) + + + + + Any sanitary measures applied (y/n) + + + + + Sanitary meassures details. Required if SanitaryMeasuresApplied is filled with Y, otherwise Violation 763 will occur. + + + + + + Sanitary measure - Type + + + + + Sanitary measure - Location + + + + + Sanitary measure - Date + + + + + + + + Stowaways on board (y/n) + + + + + Location stowaways joined ship (if known). Required if StowawaysDetected is Y, otherwise Violation 764 will occur. + + + + + Sick animal or pet on board (y/n) + + + + + Valid sanitation control exemption or control certificate on board (y/n) + + + + + Sanitary control exemption or certificate. Required if ValidSanitaryControlExemptionOrCertificateOnBoard is Y, otherwise Violation 765 will occur. + + + + + + Place of issue + + + + + Date of issue + + + + + + + + Reinspection satitary control required (y/n) + + + + + Has the ship visited an infected area (WHO)? (y/n) + + + + + Infected area. Required if InfectedAreaVisited is Y, otherwise Violation 766 will occur. + + + + + + Infected area - Port + + + + + Infected area - Date + + + + + + + + Ports of call of the last 30 days + + + + + + Port of call of the last 30 days + + + + + + Port (UNECE LOCODE) + + + + + Date of departure of port + + + + + Did any crew members join the ship at this port? (y/n) + + + + + Joined Crew members. Required if PortOfCallLast30DaysCrewMembersJoined is Y, otherwise Violation 767 will occur. + + + + + + Name of crew member + + + + + + + + + + + + + + + + + + + Waste (reporting class) + + + + + + Reporter data + + + + + + Valid exemption (y). If there is an exemption, no other attribute must be specified in this reporting class. + + + + + + Last port where waste or cargo residues were discharged (UNECE LOCODE) + + + + + Date of last disposal + + + + + Name of waste disposal service provider + + + + + Waste disposal order type (all, some, none) + + + + + All waste types provided in Directive 2015/2087 Annex II must be provided (except for Sewage) at least once. Results in Violation 783 if one or more mandatory waste types are omitted. + + + + + + Type of waste to be disposed + + + + + + Waste code according to Waste Type Codes list. Results in Violation 784 if an invalid waste code is provided. + + + + + + + + + + + + Textual description, required for those waste types marked in the Waste Type Codes list. Will otherwise result in Violation 781. + + + + + + + + Amount of waste of this waste type to be disposed in cubic meters (MTQ) + + + + + Amount of waste of this type that has been discharged at the last port of disposal in cubic meters (MTQ) + + + + + Waste details. Required only if not all wastes/cargo residues are disposed in port of call. Will result in Violation 782 if left empty or omitted otherwise. + + + + + + Maximum dedicated storage capacity of waste of this type on board in cubic meters (MTQ) + + + + + Amount of waste of this type retained on board in cubic meters (MTQ) + + + + + Port of delivery of remaining waste of this type (UNECE LOCODE) + + + + + Estimated waste/cargo residues amount of waste of this type generated between port of call and next port in cubic meters (MTQ) + + + + + + + + + + + Confirmation that the above details are accurate and correct, and there is sufficient dedicated onboard capacity to store all waste generated between notification and the next port at which waste will be delivered (fixed value Y). + + + + + + + + + + Crew list (reporting class) + + + + + + Reporter data + + + + + Crew member + + + + + + Last name + + + + + First name + + + + + Place of birth + + + + + Date of birth + + + + + Gender + + + + + Nationality: The Alpha-2 code (two-digits flag code) in accordance with the standard ISO 3166-1; "YY" for stateless + + + + + Nature of identity document (Identity card, passport, muster book, picture ID, residental permit, other) + + + + + ID of identity document + + + + + If available: Visa number or residence permit number + + + + + Duty on board + + + + + + + + + + + Passenger list (reporting class) + + + + + + Reporter data + + + + + Information to each person + + + + + + Last name + + + + + First name + + + + + Place of birth + + + + + Date of birth + + + + + Gender + + + + + The Alpha-2 code (two-digits flag code) in accordance with the standard ISO 3166-1; "YY" for stateless + + + + + Nature of identity document (Identity card, passport, muster book, picture ID, residental permit, other) + + + + + ID of identity document + + + + + Visa number or residence permit number (If available) + + + + + Port of embarkation (UNECE LOCODE) + + + + + Port of disembarkation (UNECE LOCODE) + + + + + Transit passenger (y/n) + + + + + + + + + + + Border policing message (reporting class) + + + + + + Reporter data + + + + + Stowaways on board (y/n) + + + + + Port of itinerary (only for cruise ships) + + + + + + Name of itinerary port + + + + + ETA at port of itinerary (UTC). If time is provided, use TZD (time zone designator, Z or +hh:mm or -hh:mm). + + + + + + + + + + + Towage on arrival (reporting class) + + + + + + Reporter data + + + + + Towage on arrival + + + + + + Name of the towage on arrival + + + + + Flag of the towage on arrival (Alpha-2 code (two-digits flag code) in accordance with the standard ISO 3166-1) + + + + + Identifcation of the towage operator on arrival + + + + + + name of company (DOC Document of compliance) + + + + + Street, Streetnumber + + + + + Postal code + + + + + City + + + + + Country + + + + + Phone + + + + + Fax + + + + + E-Mail + + + + + + + + Gross tonnage on arrival + + + + + + + + + + Length overall (towage) on arrival in meters (MTR) + + + + + Beam (towage) on arrival in meters (MTR) + + + + + Purpose of call of the towage on arrival + + + + + Draught of the towage on arrival in decimeters (DMT) + + + + + Remark to towage on arrival: Information on message-relevant data, for example, a HAZA message (for the dangerous goods on board the towage) attached to the VisitID + + + + + + + + + + + Towage on departure (reporting class) + + + + + + Reporter data + + + + + + + + Name of the towage on departure + + + + + Flag of the towage on departure (Alpha-2 code (two-digits flag code) in accordance with the standard ISO 3166-1). Only at a change in the terms of TOWA. + + + + + Identifcation of the towage operator on departure + + + + + + name of company + + + + + Street, Streetnumber + + + + + Postcode + + + + + City + + + + + Country + + + + + Phone + + + + + Fax + + + + + E-Mail + + + + + + + + Length overall (towage) on departure in meters (MTR) + + + + + Beam (towage) on departure in meters (MTR) + + + + + Draught of the towage on departure in decimeters (DMT) + + + + + Remark to towage on departure: Information on message-relevant data, for example, a HAZD message (for the dangerous goods on board the towage) attached to the VisitID + + + + + + + + + + + Dangerous goods on arrival (reporting class) + + + + + + Reporter data + + + + + + No DPG on Board on arrival (y) + + + + + + DPG manifest on board (y/n) + + + + + INF ship class. Needed for dangerous goods class 7 (higly radioactive goods with INF code) + + + + + Memorandum of Understanding for the Transport of Dangerous Goods on Ro-Ro Ships in the Baltic + + + + + DG on arrival. Results in Violation 805 if not at least one DPG item is provided. + + + + + + IMDG item. + + + + + IBC item + + + + + IGC item + + + + + IMSBC item + + + + + MARPOL AnnexI item + + + + + + + + + + + + + Dangerous goods on departure (reporting class) + + + + + + Reporter data + + + + + + No DPG on Board on departure (y) + + + + + + DPG manifest on board (y/n) + + + + + INF ship class. Needed for dangerous goods class 7 (higly radioactive goods with INF code) + + + + + Memorandum of Understanding for the Transport of Dangerous Goods on Ro-Ro Ships in the Baltic + + + + + DG on departure. Results in Violation 805 if not at least one DPG item is provided. + + + + + + IMDG item. + + + + + IBC item + + + + + IGC item + + + + + IMSBC item + + + + + MARPOL AnnexI item + + + + + + + + + + + + + + + A list of violations reported by the NSW core system. Declarants do not need to fill this list. + + + + + + Information for each reported violation + + + + + + NSW violation code + + + + + + + + + + + Violation description + + + + + + + + + + + + + + + + + + + + + + Type of reporter + + + + + + + + + + + + + + + + Company name + + + + + Street/street number + + + + + ZIP/Postal code + + + + + City + + + + + Country + + + + + Last name of contact + + + + + First name of contact + + + + + Phone number + + + + + Fax number + + + + + E-Mail adress + + + + + + + + + UN number. Throws Violation 806 if no material is found fitting to the provided combination of UN number and Packing group. + + + + + Packing group (none, I, II, or III). Throws Violation 806 if no material is found fitting to the provided combination of UN number and Packing group. + + + + + Proper shipping name + + + + + IMO class/division/(compatibility group). The first letter of the DG class für further checkings (see the following nodes). Throws Violation 807 if IMO class doesn't match. + + + + + Technical name (according to special regulation 274 / 318 about dangerous substances). Throws Violation 801 if this field is needed for the dangerous good and omitted or left empty. + + + + + Net explosive in kilos (KGM) mass for class 1 DG. Results in Violation 801 if this field is omitted or left empty for a class 1 DG. + + + + + Flashpoint in degrees celsius (CEL). Results in Violation 801 if this field is omitted or left empty for a class 3 DG. + + + + + Radionuclide name. Results in Violation 801 if this field is omitted or left empty for a class 7 DG. + + + + + MaxActivity in Becquerel (BQL). Results in Violation 801 if this field is omitted or left empty for a class 7 DG. + + + + + Category. Results in Violation 801 if this field is omitted or left empty for a class 7 DG. + + + + + + + + + + + Transportindex. Results in Violation 801 if this field is omitted or left empty for a class 7 DG. + + + + + + + + + + Criticality Safety Index (CSI). Results in Violation 801 if this field is omitted or left empty for a class 7 DG. + + + + + + + + + + Control temperature in degrees celsius (CEL). Results in Violation 801 if this field is omitted or left empty for a class 4 or 5 DG. + + + + + + + + + + Emergency temperature in degrees celsius (CEL). Results in Violation 801 if this field is omitted or left empty for a class 4 or 5 DG. + + + + + + + + + + Subsidiary risks + + + + + + Subsidiary risk (list) + + + + + + + + + + + + + + Marine pollutant (y/n) + + + + + Number of packages + + + + + + + + + + Package type. Name or code from UNECE REC.21 Annex VII. + + + + + Limited quantities (y/n) + + + + + Excepted quantities (y/n) + + + + + Net quantity in kilos (KGM). One of NetQuantity_KGM, GrossQuantity_KGM, or Volume_MTQ has to be filled out. Otherwise Violation 802 will be returned. + + + + + Gross quantity in kilos (KGM). One of NetQuantity_KGM, GrossQuantity_KGM, or Volume_MTQ has to be filled out. Otherwise Violation 802 will be returned. + + + + + Cargo volume in cubic meters (MTQ). One of NetQuantity_KGM, GrossQuantity_KGM, or Volume_MTQ has to be filled out. Otherwise Violation 802 will be returned. + + + + + General cargo (y/n). One of GeneralCargoIBC, ContainerNumber, or VehicleLicenseNumber has to be filled out. Otherwise Violation 808 will be returned. + + + + + Container number. One of GeneralCargoIBC, ContainerNumber, or VehicleLicenseNumber has to be filled out. Otherwise Violation 808 will be returned. + + + + + License plate of vehicle. One of GeneralCargoIBC, ContainerNumber, or VehicleLicenseNumber has to be filled out. Otherwise Violation 808 will be returned. + + + + + + Stowage position. In case of a container the position must be given in Bay-Row-Tier notation (use appropriate fields). + + + + + + Notation bay. Use this for stowage position in case of container. + + + + + Notation row. Use this for stowage position in case of container. + + + + + Notation tier. Use this for stowage position in case of container. + + + + + + + Port of loading (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Port of discharge (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Remark + + + + + Unique identifier. Will be addressed in possible Violations in this dg item. + + + + + + + + + Product name or trade name + + + + + Pollution category (X, Y, Z, or OS) + + + + + Hazards (column "d" of the IBC code (P, S, or S/P) + + + + + Flashpoint information (non-flammable, greater 60 degree celsius, or lesser-equal 60 degree celsius) + + + + + Flashpoint in degrees celsius (CEL). Required if field FlashpointInformation is LE60CEL. Otherwise Violation 804 will be returned. + + + + + Quantity in kilos (KGM) + + + + + Stowage position + + + + + Port of loading (UNECE LOCODE) + + + + + Port of discharge (UNECE LOCODE) + + + + + Colums "o" of IBC Code containing value 15.19 (y/n) IMO RESOLUTION MEPC.119(52) + + + + + Remark + + + + + Unique identifier. Will be addressed in possible Violations in this dg item. + + + + + + + + + UN-number + + + + + IMO hazardous class / division + + + + + Product name + + + + + Quantity in kilos (KGM) + + + + + Stowage position + + + + + Port of loading (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Port of discharge (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Remark + + + + + Unique identifier. Will be addressed in possible Violations in this dg item. + + + + + + + + + Bulk cargo shipping name + + + + + Material hazardous only in bulk (y/n). Taken from the field "class" of the IMSBC description. + + + + + UN-Number. Required if field MHB is N. Taken from the technical name of the IMSBC description. Otherwise Violation 803 will be returned. + + + + + IMO hazardous class / division. Required if field MHB is N. Taken from the technical name of the IMSBC description. Otherwise Violation 803 will be returned. + + + + + Quantity in kilos (KGM) + + + + + Stowage Position + + + + + Port of loading (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Port of discharge (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Remark + + + + + Unique identifier. Will be addressed in possible Violations in this dg item. + + + + + + + + + Name + + + + + Flashpoint information (non-flammable, greater 60 degree celsius, or lesser-equal 60 degree celsius) + + + + + Flashpoint in degrees celsius (CEL). Required if field FlashpointInformation is LE60CEL. Otherwise Violation 804 will be returned. + + + + + Quantity in kilos (KGM) + + + + + Stowage Position + + + + + Port of loading (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Port of discharge (UNECE LOCODE). Use ZZUKN if port is unknown. + + + + + Remark + + + + + Unique identifier. Will be addressed in possible Violations in this dg item. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nsw/dbh/NSWResponse V4.0 2016-11-15.xsd b/nsw/dbh/NSWResponse V4.0 2016-11-15.xsd new file mode 100644 index 00000000..b9c3dd26 --- /dev/null +++ b/nsw/dbh/NSWResponse V4.0 2016-11-15.xsd @@ -0,0 +1,244 @@ + + + + + + + + + Version number of schema + + + + + + + + + + + Unique message identifier. + + + + + Required when TransitId is missing and field "Type" is not "VISIT or "TRANSIT" + + + + + + + + + + + Required when VisitId is missing and field "Type" is not "VISIT or "TRANSIT" + + + + + + + + + + + A list of SIS numbers. An empty list means that all sent numbers will be deleted. Sending a new list overwrites existing ones completely. + + + + + + One SIS number + + + + + + + + + + + + + Timestamp, when the message is sent + + + + + A customer reference that can be freely filled and will be send back in the following response. No checks are made on this field. When a new Visit- or TransitId is obtained, it should be used as a reference to match the response to its corresponding request. + + + + + + + + + + + The message type (should be the same as in the request message): +- VISIT: Creates a new declaration with the application for a VisitId. It's allowed to send further data in one or more reporting classes +- TRANSIT: same with TransitId +- DATA: Only data for one or more reporting classes are included +- RESET: The data of one or more reporting classes are deleted +- CANCEL: The whole declaration is cancelled + + + + + + + + + + + + + + Reporting classes that are received with all necessary data. + + + + + + The code of a reporting class. + + + + + + + + Reporting classes that are received with some data missing (see Messages for errors/violations). + + + + + + The code of a reporting class. + + + + + + + + Reporting classes that are received with some data missing (see Messages for errors/violations). + + + + + + The code of a reporting class. + + + + + + + + Reporting classes that are resetted (due to a message with Type RESET). + + + + + + The code of a reporting class. + + + + + + + + Errors, Violations, etc. + + + + + + + + + ID (given from NSW) + + + + + + + + + + + + Type of Message (functional error, process error in report, process error in message basket, process error during status request, or violation) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file