Mercurial > gemma
changeset 5608:df40d55f7c9a erdms2
Added new ERDMS 2 service.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 31 Oct 2022 17:03:34 +0100 |
parents | f2b51ac3d5cf |
children | e1936db6db8e |
files | pkg/soap/erdms2/service.go |
diffstat | 1 files changed, 1858 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/soap/erdms2/service.go Mon Oct 31 17:03:34 2022 +0100 @@ -0,0 +1,1858 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package erdms2 + +import ( + "context" + "encoding/xml" + + "gemma.intevation.de/gemma/pkg/soap" +) + +type AnyType struct { + InnerXML string `xml:",innerxml"` +} + +type AnyURI string + +type NCName string + +// adn (dgs goods) internal adn code (unnr + seqnr: to +// make each adn good unique) +// + +type AdnCodeType string + +// adn class and classifications codes +// + +type AdnClassType string + +type AdnClassIfType string + +type AdnImoClassType string + +// adn (dgs) labels applicable for a dgs good +// + +type AdnLabelType string + +// adn aquatic toxicity, tanker transports (indication +// for dgs, usuallly liquids) +// + +type AquaticToxicityType string + +// Older CBS (number) code (3 digits) use by +// statistics organisations (backw comp) but replaced by newer iso 3166 +// (2 letters). +// + +type CbscountryCodeType string + +// adn chemical stability (indication), tanker +// transports +// + +type ChemicalStabilityType string + +// adn CMR properties (tanker transports) +// + +type CmrPropertyType string + +// iso 6346 container type (code) + +type ContIdType string + +// containertype textual description +// + +type ContNameType string + +// indication (flag) wheater shiptype code is a single +// ship or a transport combination +// + +type CombinationFlagType bool + +// Country iso 3166 code (2 alpha) + +type CountryCodeType string + +// Country iso 3166 code (3 alpha) + +type CountryCode3Type string + +// Countryname type (name of the country) +// + +type CountryNameType string + +// Country iso 3166 numcode (3 digits) +// + +type CountryIsoNumType string + +// techn directive craft type code (eu hull db) +// + +type CraftTypeType string + +// inland cones 0,1,2,3,V (as used for DGS goods and +// cones calculations) +// + +type ConesType string + +const ( + ConesType0 ConesType = "0" + + ConesType1 ConesType = "1" + + ConesType2 ConesType = "2" + + ConesType3 ConesType = "3" + + ConesTypeV ConesType = "V" +) + +// dimension type (length, width, draught etc) in [cm] +// (no decimals) +// + +type DimType int64 + +// older 2 digit dvk shiptype code (replaced by unrec) +// + +type DvkTypeType string + +// record erased (not actual anymore) flag type +// + +type ErasedType bool + +// eri location code type as used for eri_locations +// + +type ErilocCodeType string + +// eri location name type as used in eri_locations +// + +type ErilocNameType string + +// flags 0,B,V (dang goods indication seagoing +// vessels) +// + +type FlagsType string + +const ( + FlagsType0 FlagsType = "0" + + FlagsTypeB FlagsType = "B" + + FlagsTypeV FlagsType = "V" +) + +// adn floater or sinker (indication), tanker +// transports +// + +type FloatersinkerType string + +// fairway code (text) + +type FwCodeType string + +// ADN dangerous goodnames, description +// + +type AdnCodeNameType string + +// non-dangerous goodnames, description +// + +type HsCodeNameType string + +// ADN dangerous good synonym name,description +// + +type GoodSynType string + +// HS code as used by customs + +type HsCodeType string + +// hectometre code (hectomere in [hm] (no decimals) on +// the fairway) +// + +type KmCodeType string + +// lastupdate, last modification date time of this +// record +// + +type LastupdateType soap.XSDDateTime + +// one of the supported languages (basic and +// additional set), based on ISO 639-1 +// + +type LangType string + +const ( + LangTypeEmptyString LangType = "%%" + + LangTypeLc LangType = "lc" + + LangTypeNl LangType = "nl" + + LangTypeDe LangType = "de" + + LangTypeFr LangType = "fr" + + LangTypeEn LangType = "en" + + LangTypeBg LangType = "bg" + + LangTypeCs LangType = "cs" + + LangTypeDa LangType = "da" + + LangTypeEl LangType = "el" + + LangTypeEs LangType = "es" + + LangTypeEt LangType = "et" + + LangTypeFi LangType = "fi" + + LangTypeHu LangType = "hu" + + LangTypeIt LangType = "it" + + LangTypeLt LangType = "lt" + + LangTypeLv LangType = "lv" + + LangTypePl LangType = "pl" + + LangTypePt LangType = "pt" + + LangTypeRo LangType = "ro" + + LangTypeSk LangType = "sk" + + LangTypeSl LangType = "sl" + + LangTypeSv LangType = "sv" + + LangTypeHr LangType = "hr" + + LangTypeRu LangType = "ru" + + LangTypeSr LangType = "sr" +) + +// lat long (WGS decimal [.] coordinates) coordinate +// type +// + +type LatlonType float64 + +// un locode (2 country + 3 location code) +// + +type LoCodeType string + +// Number of possible (departure) exist (routes) for a +// location +// + +type LocExitsType int32 + +type LocExitsCodeType string + +type LocSbbLoCodeType string + +type LocSbbCodeType string + +// location type, terminal type (a number indicating +// type of location,terminal) +// + +type LocTypeType int32 + +// lloyds flag code for a certain country (seagoing) +// + +type LloydsflagType string + +// NST code (corresponing nst2007 EU statistics codes +// for goods). +// + +type NstCodeType string + +// NtS (Notices to Skippers) code/Value datatype +// + +type NtsCodeType string + +// NtS name/description (belonging to a ntsCode) +// datatype +// + +type NtsNameType string + +// NtS subtype (sub data type, there are several nts +// tables) +// + +type NtstypeType string + +// ADN dangerous good packing group I, II, III +// + +type PackGrpType string + +// UN rec 21 inner package code + +type PackIdType string + +// Un rec 21 inner package name/description +// + +type PackNameType string + +type IvsType string + +// VTS/IVS code = Provider ID active in certain area +// and acting as a reporting point = receiving system (when departing +// from that location) +// + +type ProviderIdType string + +type IvsNameType string + +type IvsTermType string + +type IvsReportType bool + +// quay type (terminals), indicating quay nrs/id's +// + +type QuayType string + +// record counter (nr of records available or in a +// set) +// + +type RecCountType int64 + +// reftype Type (reftool data reftype, such as: +// risidx, eri_location, eri_hscode, nts_data) +// + +type ReftypeType string + +const ( + ReftypeTypeRis_idx ReftypeType = "ris_idx" + + ReftypeTypeEri_location ReftypeType = "eri_location" + + ReftypeTypeEri_hscode ReftypeType = "eri_hscode" + + ReftypeTypeEri_adncode ReftypeType = "eri_adncode" + + ReftypeTypeEri_conttype ReftypeType = "eri_conttype" + + ReftypeTypeEri_packtype ReftypeType = "eri_packtype" + + ReftypeTypeEri_shiptype ReftypeType = "eri_shiptype" + + ReftypeTypeEri_country ReftypeType = "eri_country" + + ReftypeTypeEri_error_code_erirsp ReftypeType = "eri_error_code_erirsp" + + ReftypeTypeNts_barrage ReftypeType = "nts_barrage" + + ReftypeTypeNts_communication ReftypeType = "nts_communication" + + ReftypeTypeNts_country ReftypeType = "nts_country" + + ReftypeTypeNts_dimension_code ReftypeType = "nts_dimension_code" + + ReftypeTypeNts_direction ReftypeType = "nts_direction" + + ReftypeTypeNts_direction_max ReftypeType = "nts_direction_max" + + ReftypeTypeNts_direction_min ReftypeType = "nts_direction_min" + + ReftypeTypeNts_gui_labels ReftypeType = "nts_gui_labels" + + ReftypeTypeNts_ice_accessibility ReftypeType = "nts_ice_accessibility" + + ReftypeTypeNts_ice_condition ReftypeType = "nts_ice_condition" + + ReftypeTypeNts_ice_classification ReftypeType = "nts_ice_classification" + + ReftypeTypeNts_ice_situation ReftypeType = "nts_ice_situation" + + ReftypeTypeNts_indication ReftypeType = "nts_indication" + + ReftypeTypeNts_interval ReftypeType = "nts_interval" + + ReftypeTypeNts_language ReftypeType = "nts_language" + + ReftypeTypeNts_limitation ReftypeType = "nts_limitation" + + ReftypeTypeNts_measure ReftypeType = "nts_measure" + + ReftypeTypeNts_position ReftypeType = "nts_position" + + ReftypeTypeNts_reason ReftypeType = "nts_reason" + + ReftypeTypeNts_reference ReftypeType = "nts_reference" + + ReftypeTypeNts_regime ReftypeType = "nts_regime" + + ReftypeTypeNts_reporting ReftypeType = "nts_reporting" + + ReftypeTypeNts_subject ReftypeType = "nts_subject" + + ReftypeTypeNts_tag ReftypeType = "nts_tag" + + ReftypeTypeNts_target_group ReftypeType = "nts_target_group" + + ReftypeTypeNts_type ReftypeType = "nts_type" + + ReftypeTypeNts_weather_category ReftypeType = "nts_weather_category" + + ReftypeTypeNts_weather_class ReftypeType = "nts_weather_class" + + ReftypeTypeNts_weather_direction ReftypeType = "nts_weather_direction" + + ReftypeTypeNts_weather_item ReftypeType = "nts_weather_item" +) + +// RefData record version numbering (automaically, +// starts with 1 and increments on updates, requesting version 0=dont +// care) +// + +type RefrecVersionType int64 + +// remarks string (remarks about the maintance of a +// record or any other remarks) +// + +type RemarksType string + +// return status info string + +type ReturnStatusType string + +// ris idx applicability from / to km (in hectometres +// (no decimals)) +// + +type RisapplikmType int64 + +// ris index (ISRS) code type (full ris index code) +// + +type RisCodeType string + +// ris idx communication information TXTDSC +// + +type RiscomminfoType string + +// ris idx category of time schedule (cattab) +// + +type RiscatoftimeschedType string + +// ris idx for ship type + +type RisforshiptypeType string + +// ris idx national Gauge Code type (can be utilised +// to store any national coding/id/link for gauges) +// + +type RisgaugeidType string + +// ris idx geod reference + +type RisgeodrefType string + +// ris idx link to external XML file +// + +type RislinkextxmlType string + +// locationames as used in the ris index +// + +type RislocNameType string + +// ris idx object code type (single code for a +// junction, termcode etc padded), subpart of the ris idx. +// + +type RisobjCodeType string + +// ris idx object function code type (junction, berths +// etc) +// + +type RisobjfuncType string + +// ris idx position on the fairway code +// + +type RispostionCodeType string + +// ris idx related ENC's type as used in ris idx (list +// of ENC id's) +// + +type RisrelencType string + +// route names, descriptions as used in the ris index +// + +type RisrouteNameType string + +// ris idx section node id + +type RissectnodeType string + +// ris idx reference level code (indicating the ref +// level) +// + +type RisreflevelcodeType string + +// ris idx reference level value [cm] +// + +type RisreflevelvalueType int64 + +// ris idx use of ship useshp + +type RisuseofshipType string + +// ris idx zero point [cm] + +type RiszeropointType int64 + +// UNrec 28 shiptype (4 digits) + +type ShipTypeType string + +// shiptype name (textual) description +// + +type ShiptypeNameType string + +// source string, to specify the source of this +// record/data or the update. +// + +type SourceType string + +// ADN signal code (to group dgs for cones/flags +// calculations) +// + +type SignalCodeType string + +// terminal code type (remark: termcode is the only +// part of eri locs with variable length, historical reasons). +// + +type TermCodeType string + +// unlocode countrycode part (first 2 of unlocode) as +// used in ris idx +// + +type UnlocCCType string + +// unlocode location code part (last 3 of unlocode) as +// used in ris idx +// + +type UnlocLCType string + +// UN nr (4 digits) adn nr for identifying ADN +// dangerous goods (according CCNR) +// + +type UnnrType string + +// Username which makes the call +// + +type UserNameType string + +// cargo weight type, integer nr (units [tons], [kg]) +// depending on element) +// + +type WeightType int64 + +// adn warning (dgs) card id + +type WarnIdType string + +// adn warning card + +type WarnCardType string + +// +// Page code, last record id in given page +// + +type PageCodeType string + +type PageSizeType uint32 + +type EcErrorCodeType string + +type EcErrorGroupType uint32 + +type EcNameType string + +type NtsIceConditionCodeThicknessType string + +type AggrStatusType string + +type TechNameType uint32 + +type MatchByCode struct { + XMLName xml.Name `xml:"http://rwsreftool/ matchByCode"` + + *MatchByCodeType +} + +type MatchByCodeResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ matchByCodeResponse"` + + *MatchByCodeResponseType +} + +type MatchByName struct { + XMLName xml.Name `xml:"http://rwsreftool/ matchByName"` + + *MatchByNameType +} + +type MatchByNameResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ matchByNameResponse"` + + *MatchByNameResponseType +} + +type GetDataXML struct { + XMLName xml.Name `xml:"http://rwsreftool/ getDataXML"` + + *GetDataXMLType +} + +type GetDataXMLResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ getDataXMLResponse"` + + *GetDataXMLResponseType +} + +type GetMutatedTables struct { + XMLName xml.Name `xml:"http://rwsreftool/ getMutatedTables"` + + *GetMutatedTablesType +} + +type GetMutatedTablesResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ getMutatedTablesResponse"` + + *GetMutatedTablesResponseType +} + +type GetMutations struct { + XMLName xml.Name `xml:"http://rwsreftool/ getMutations"` + + *GetMutationsType +} + +type GetMutationsResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ getMutationsResponse"` + + *GetMutationsResponseType +} + +type GetRisDataXML struct { + XMLName xml.Name `xml:"http://rwsreftool/ getRisDataXML"` + + *GetRisDataXMLType +} + +type GetRisDataXMLResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ getRisDataXMLResponse"` + + *GetRisDataXMLResponseType +} + +type MutateDataXML struct { + XMLName xml.Name `xml:"http://rwsreftool/ mutateDataXML"` + + *MutateDataXMLType +} + +type MutateDataXMLResponse struct { + XMLName xml.Name `xml:"http://rwsreftool/ mutateDataXMLResponse"` + + *MutateDataXMLResponseType +} + +type Exception ExceptionType + +type MatchByCodeType struct { + Reftype *ReftypeType `xml:"reftype,omitempty" json:"reftype,omitempty"` + + Code string `xml:"code,omitempty" json:"code,omitempty"` + + Page *PageRequestType `xml:"page,omitempty" json:"page,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` +} + +type MatchByCodeResponseType struct { + PageDetails *PageDetailsType `xml:"pageDetails,omitempty" json:"pageDetails,omitempty"` + + RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty" json:"refdataReturn,omitempty"` +} + +type MatchByNameType struct { + Reftype *ReftypeType `xml:"reftype,omitempty" json:"reftype,omitempty"` + + Lang *LangType `xml:"lang,omitempty" json:"lang,omitempty"` + + Name string `xml:"name,omitempty" json:"name,omitempty"` + + Page *PageRequestType `xml:"page,omitempty" json:"page,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` +} + +type MatchByNameResponseType struct { + PageDetails *PageDetailsType `xml:"pageDetails,omitempty" json:"pageDetails,omitempty"` + + RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty" json:"refdataReturn,omitempty"` +} + +type GetMutatedTablesType struct { + + // fromDate and toDate in datetime format in UTC time + // + FromDate soap.XSDDateTime `xml:"fromDate,omitempty" json:"fromDate,omitempty"` + + ToDate soap.XSDDateTime `xml:"toDate,omitempty" json:"toDate,omitempty"` +} + +type GetMutatedTablesResponseType struct { + + // Indicate how many mutated tables are + // available/were found. + // + RecCount *RecCountType `xml:"recCount,omitempty" json:"recCount,omitempty"` + + // Generic status info field, to return (any) status + // info + // + ReturnStatus *ReturnStatusType `xml:"returnStatus,omitempty" json:"returnStatus,omitempty"` + + MutatedTables []*MutatedTableReturnType `xml:"mutatedTables,omitempty" json:"mutatedTables,omitempty"` +} + +type GetMutationsType struct { + Reftype *ReftypeType `xml:"reftype,omitempty" json:"reftype,omitempty"` + + // from, to in datetime format in UTC time + // + FromDate soap.XSDDateTime `xml:"fromDate,omitempty" json:"fromDate,omitempty"` + + ToDate soap.XSDDateTime `xml:"toDate,omitempty" json:"toDate,omitempty"` + + Page *PageRequestType `xml:"page,omitempty" json:"page,omitempty"` +} + +type GetMutationsResponseType struct { + PageDetails *PageDetailsType `xml:"pageDetails,omitempty" json:"pageDetails,omitempty"` + + RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty" json:"refdataReturn,omitempty"` +} + +type GetDataXMLType struct { + Reftype *ReftypeType `xml:"reftype,omitempty" json:"reftype,omitempty"` + + Page *PageRequestType `xml:"page,omitempty" json:"page,omitempty"` + + Subcode *RisCodeType `xml:"subcode,omitempty" json:"subcode,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` +} + +type GetDataXMLResponseType struct { + PageDetails *PageDetailsType `xml:"pageDetails,omitempty" json:"pageDetails,omitempty"` + + RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty" json:"refdataReturn,omitempty"` +} + +type GetRisDataXMLType struct { + Funcode string `xml:"funcode,omitempty" json:"funcode,omitempty"` + + CountryCode *CountryCodeType `xml:"countryCode,omitempty" json:"countryCode,omitempty"` + + Page *PageRequestType `xml:"page,omitempty" json:"page,omitempty"` + + Subcode *RisCodeType `xml:"subcode,omitempty" json:"subcode,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` +} + +type GetRisDataXMLResponseType struct { + PageDetails *PageDetailsType `xml:"pageDetails,omitempty" json:"pageDetails,omitempty"` + + RisdataReturn []*Ris_idxType `xml:"risdataReturn,omitempty" json:"risdataReturn,omitempty"` +} + +type MutateDataXMLType struct { + Username *UserNameType `xml:"username,omitempty" json:"username,omitempty"` + + RefData *RefdataReturnType `xml:"refData,omitempty" json:"refData,omitempty"` +} + +type MutateDataXMLResponseType struct { + *StatReturnType +} + +type ExceptionType struct { + XMLName xml.Name `xml:"http://rwsreftool/ exception"` + + // exception code + Exception int32 `xml:"exception,omitempty" json:"exception,omitempty"` + + // exception message in English + Message string `xml:"message,omitempty" json:"message,omitempty"` +} + +type RefdataReturnType struct { + Reftype struct { + Value *ReftypeType `xml:",chardata" json:"-,"` + } `xml:"reftype,omitempty" json:"reftype,omitempty"` + + Ris_idx *Ris_idxType `xml:"ris_idx,omitempty" json:"ris_idx,omitempty"` + + Eri_location *Eri_locationType `xml:"eri_location,omitempty" json:"eri_location,omitempty"` + + Eri_hscode *Eri_hscodeType `xml:"eri_hscode,omitempty" json:"eri_hscode,omitempty"` + + Eri_adncode *Eri_adncodeType `xml:"eri_adncode,omitempty" json:"eri_adncode,omitempty"` + + Eri_conttype *Eri_conttypeType `xml:"eri_conttype,omitempty" json:"eri_conttype,omitempty"` + + Eri_packtype *Eri_packtypeType `xml:"eri_packtype,omitempty" json:"eri_packtype,omitempty"` + + Eri_shiptype *Eri_shiptypeType `xml:"eri_shiptype,omitempty" json:"eri_shiptype,omitempty"` + + Eri_country *Eri_countryType `xml:"eri_country,omitempty" json:"eri_country,omitempty"` + + Eri_errorCodeRsp *Eri_errorCodeRspType `xml:"eri_errorCodeRsp,omitempty" json:"eri_errorCodeRsp,omitempty"` + + // NtS element is only available in the return + // refdata structure. + // It is not available in the Req Mutation datastructure because we + // can not mutate nts data (not allowed)! + // + Nts_data *Nts_dataType `xml:"nts_data,omitempty" json:"nts_data,omitempty"` +} + +type MutatedTableReturnType struct { + XMLName xml.Name `xml:"http://rwsreftool/ mutatedTables"` + + // This table (refType) has mutations (>0) + // + RefType *ReftypeType `xml:"refType,omitempty" json:"refType,omitempty"` + + // Indicates how many (>0) mutations (records) are + // available for THIS table. + // + RecCount *RecCountType `xml:"recCount,omitempty" json:"recCount,omitempty"` +} + +type StatReturnType struct { + + // 0=ok, 1=warning, 2=error + + Err int32 `xml:"err,omitempty" json:"err,omitempty"` + + Message struct { + } `xml:"message,omitempty" json:"message,omitempty"` +} + +type Ris_idxType struct { + RisidxCode *RisCodeType `xml:"risidxCode,omitempty" json:"risidxCode,omitempty"` + + CodeOld *RisCodeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + UnlocCC *UnlocCCType `xml:"unlocCC,omitempty" json:"unlocCC,omitempty"` + + UnlocLC *UnlocLCType `xml:"unlocLC,omitempty" json:"unlocLC,omitempty"` + + WwsectCode *FwCodeType `xml:"wwsectCode,omitempty" json:"wwsectCode,omitempty"` + + Objcode *RisobjCodeType `xml:"objcode,omitempty" json:"objcode,omitempty"` + + Hectomt *KmCodeType `xml:"hectomt,omitempty" json:"hectomt,omitempty"` + + Objfunc *RisobjfuncType `xml:"objfunc,omitempty" json:"objfunc,omitempty"` + + Objname struct { + + // Without diacritics (to be used in EDIfact + // msgs) + // + Loc *RislocNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + // in UTF8 + LocNational *RislocNameType `xml:"locNational,omitempty" json:"locNational,omitempty"` + } `xml:"objname,omitempty" json:"objname,omitempty"` + + Locname struct { + Loc *RislocNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + LocNational *RislocNameType `xml:"locNational,omitempty" json:"locNational,omitempty"` + } `xml:"locname,omitempty" json:"locname,omitempty"` + + Wwname struct { + Loc *RislocNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + LocNational *RislocNameType `xml:"locNational,omitempty" json:"locNational,omitempty"` + } `xml:"wwname,omitempty" json:"wwname,omitempty"` + + Routename struct { + Loc *RisrouteNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + LocNational *RisrouteNameType `xml:"locNational,omitempty" json:"locNational,omitempty"` + } `xml:"routename,omitempty" json:"routename,omitempty"` + + PositionCode *RispostionCodeType `xml:"positionCode,omitempty" json:"positionCode,omitempty"` + + Relrisindex *RisCodeType `xml:"relrisindex,omitempty" json:"relrisindex,omitempty"` + + Sectionnode *RissectnodeType `xml:"sectionnode,omitempty" json:"sectionnode,omitempty"` + + Lat *LatlonType `xml:"lat,omitempty" json:"lat,omitempty"` + + Lon *LatlonType `xml:"lon,omitempty" json:"lon,omitempty"` + + Relenc *RisrelencType `xml:"relenc,omitempty" json:"relenc,omitempty"` + + Comminfo *RiscomminfoType `xml:"comminfo,omitempty" json:"comminfo,omitempty"` + + Gaugeid *RisgaugeidType `xml:"gaugeid,omitempty" json:"gaugeid,omitempty"` + + Vesselconvlength *DimType `xml:"vesselconvlength,omitempty" json:"vesselconvlength,omitempty"` + + Vesselconvbreadth *DimType `xml:"vesselconvbreadth,omitempty" json:"vesselconvbreadth,omitempty"` + + Vesselconvdraught *DimType `xml:"vesselconvdraught,omitempty" json:"vesselconvdraught,omitempty"` + + Vesselconvairdraught *DimType `xml:"vesselconvairdraught,omitempty" json:"vesselconvairdraught,omitempty"` + + Availablelength *DimType `xml:"availablelength,omitempty" json:"availablelength,omitempty"` + + Clearancewidth *DimType `xml:"clearancewidth,omitempty" json:"clearancewidth,omitempty"` + + Availabledepthcode *RisreflevelcodeType `xml:"availabledepthcode,omitempty" json:"availabledepthcode,omitempty"` + + Availabledepth *DimType `xml:"availabledepth,omitempty" json:"availabledepth,omitempty"` + + Clearanceheightcode *RisreflevelcodeType `xml:"clearanceheightcode,omitempty" json:"clearanceheightcode,omitempty"` + + Clearanceheight *DimType `xml:"clearanceheight,omitempty" json:"clearanceheight,omitempty"` + + ReferencegaugeISRS *RisCodeType `xml:"referencegaugeISRS,omitempty" json:"referencegaugeISRS,omitempty"` + + Applicabilityfromkm *RisapplikmType `xml:"applicabilityfromkm,omitempty" json:"applicabilityfromkm,omitempty"` + + Applicabilitytokm *RisapplikmType `xml:"applicabilitytokm,omitempty" json:"applicabilitytokm,omitempty"` + + Reflevel1code *RisreflevelcodeType `xml:"reflevel1code,omitempty" json:"reflevel1code,omitempty"` + + Reflevel1value *RisreflevelvalueType `xml:"reflevel1value,omitempty" json:"reflevel1value,omitempty"` + + Reflevel2code *RisreflevelcodeType `xml:"reflevel2code,omitempty" json:"reflevel2code,omitempty"` + + Reflevel2value *RisreflevelvalueType `xml:"reflevel2value,omitempty" json:"reflevel2value,omitempty"` + + Reflevel3code *RisreflevelcodeType `xml:"reflevel3code,omitempty" json:"reflevel3code,omitempty"` + + Reflevel3value *RisreflevelvalueType `xml:"reflevel3value,omitempty" json:"reflevel3value,omitempty"` + + Zeropoint *RiszeropointType `xml:"zeropoint,omitempty" json:"zeropoint,omitempty"` + + Geodref *RisgeodrefType `xml:"geodref,omitempty" json:"geodref,omitempty"` + + Catoftimesched *RiscatoftimeschedType `xml:"catoftimesched,omitempty" json:"catoftimesched,omitempty"` + + Forshiptype *RisforshiptypeType `xml:"forshiptype,omitempty" json:"forshiptype,omitempty"` + + Foruseofship *RisuseofshipType `xml:"foruseofship,omitempty" json:"foruseofship,omitempty"` + + LnktoextXMfiletimesched *RislinkextxmlType `xml:"lnktoextXMfiletimesched,omitempty" json:"lnktoextXMfiletimesched,omitempty"` + + LnktoextXMfilepastime *RislinkextxmlType `xml:"lnktoextXMfilepastime,omitempty" json:"lnktoextXMfilepastime,omitempty"` + + Vesselconvlength2 *DimType `xml:"vesselconvlength2,omitempty" json:"vesselconvlength2,omitempty"` + + Vesselconvbreadth2 *DimType `xml:"vesselconvbreadth2,omitempty" json:"vesselconvbreadth2,omitempty"` + + Vesselconvdraught2 *DimType `xml:"vesselconvdraught2,omitempty" json:"vesselconvdraught2,omitempty"` + + Vesselconvairdraught2 *DimType `xml:"vesselconvairdraught2,omitempty" json:"vesselconvairdraught2,omitempty"` + + Availablelength2 *DimType `xml:"availablelength2,omitempty" json:"availablelength2,omitempty"` + + Clearancewidth2 *DimType `xml:"clearancewidth2,omitempty" json:"clearancewidth2,omitempty"` + + Availabledepth2code *RisreflevelcodeType `xml:"availabledepth2code,omitempty" json:"availabledepth2code,omitempty"` + + Availabledepth2 *DimType `xml:"availabledepth2,omitempty" json:"availabledepth2,omitempty"` + + Clearanceheight2code *RisreflevelcodeType `xml:"clearanceheight2code,omitempty" json:"clearanceheight2code,omitempty"` + + Clearanceheight2 *DimType `xml:"clearanceheight2,omitempty" json:"clearanceheight2,omitempty"` + + Referencegauge2ISRS *RisCodeType `xml:"referencegauge2ISRS,omitempty" json:"referencegauge2ISRS,omitempty"` + + Vesselconvlength3 *DimType `xml:"vesselconvlength3,omitempty" json:"vesselconvlength3,omitempty"` + + Vesselconvbreadth3 *DimType `xml:"vesselconvbreadth3,omitempty" json:"vesselconvbreadth3,omitempty"` + + Vesselconvdraught3 *DimType `xml:"vesselconvdraught3,omitempty" json:"vesselconvdraught3,omitempty"` + + Vesselconvairdraught3 *DimType `xml:"vesselconvairdraught3,omitempty" json:"vesselconvairdraught3,omitempty"` + + Availablelength3 *DimType `xml:"availablelength3,omitempty" json:"availablelength3,omitempty"` + + Clearancewidth3 *DimType `xml:"clearancewidth3,omitempty" json:"clearancewidth3,omitempty"` + + Availabledepth3code *RisreflevelcodeType `xml:"availabledepth3code,omitempty" json:"availabledepth3code,omitempty"` + + Availabledepth3 *DimType `xml:"availabledepth3,omitempty" json:"availabledepth3,omitempty"` + + Clearanceheight3code *RisreflevelcodeType `xml:"clearanceheight3code,omitempty" json:"clearanceheight3code,omitempty"` + + Clearanceheight3 *DimType `xml:"clearanceheight3,omitempty" json:"clearanceheight3,omitempty"` + + Referencegauge3ISRS *RisCodeType `xml:"referencegauge3ISRS,omitempty" json:"referencegauge3ISRS,omitempty"` + + Catoftimesched2 *RiscatoftimeschedType `xml:"catoftimesched2,omitempty" json:"catoftimesched2,omitempty"` + + Forshiptype2 *RisforshiptypeType `xml:"forshiptype2,omitempty" json:"forshiptype2,omitempty"` + + Foruseofship2 *RisuseofshipType `xml:"foruseofship2,omitempty" json:"foruseofship2,omitempty"` + + LnktoextXMfiletimesched2 *RislinkextxmlType `xml:"lnktoextXMfiletimesched2,omitempty" json:"lnktoextXMfiletimesched2,omitempty"` + + LnktoextXMfilepastime2 *RislinkextxmlType `xml:"lnktoextXMfilepastime2,omitempty" json:"lnktoextXMfilepastime2,omitempty"` + + Catoftimesched3 *RiscatoftimeschedType `xml:"catoftimesched3,omitempty" json:"catoftimesched3,omitempty"` + + Forshiptype3 *RisforshiptypeType `xml:"forshiptype3,omitempty" json:"forshiptype3,omitempty"` + + Foruseofship3 *RisuseofshipType `xml:"foruseofship3,omitempty" json:"foruseofship3,omitempty"` + + LnktoextXMfiletimesched3 *RislinkextxmlType `xml:"lnktoextXMfiletimesched3,omitempty" json:"lnktoextXMfiletimesched3,omitempty"` + + LnktoextXMfilepastime3 *RislinkextxmlType `xml:"lnktoextXMfilepastime3,omitempty" json:"lnktoextXMfilepastime3,omitempty"` + + Startdate *LastupdateType `xml:"startdate,omitempty" json:"startdate,omitempty"` + + Enddate *LastupdateType `xml:"enddate,omitempty" json:"enddate,omitempty"` + + Infodate *LastupdateType `xml:"infodate,omitempty" json:"infodate,omitempty"` + + // specific (RIS) source of this information + // + RisidxSource *RemarksType `xml:"risidxSource,omitempty" json:"risidxSource,omitempty"` + + // specific Ris idx remarks, reasons for change + // (descriptions as received with the ris idx) + // + RisidxRemarks *RemarksType `xml:"risidxRemarks,omitempty" json:"risidxRemarks,omitempty"` + + // source of mutation + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + // remarks regarding the maintance of the ris idx + // + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_locationType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_location"` + + ErilocCode *ErilocCodeType `xml:"erilocCode,omitempty" json:"erilocCode,omitempty"` + + CodeOld *ErilocCodeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + RisCode *RisCodeType `xml:"risCode,omitempty" json:"risCode,omitempty"` + + LoCode *LoCodeType `xml:"loCode,omitempty" json:"loCode,omitempty"` + + FwCode *FwCodeType `xml:"fwCode,omitempty" json:"fwCode,omitempty"` + + KmCode *KmCodeType `xml:"kmCode,omitempty" json:"kmCode,omitempty"` + + Name struct { + Loc *ErilocNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + NL *ErilocNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *ErilocNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *ErilocNameType `xml:"FR,omitempty" json:"FR,omitempty"` + + EN *ErilocNameType `xml:"EN,omitempty" json:"EN,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + LocType *LocTypeType `xml:"locType,omitempty" json:"locType,omitempty"` + + Lat *LatlonType `xml:"lat,omitempty" json:"lat,omitempty"` + + Lon *LatlonType `xml:"lon,omitempty" json:"lon,omitempty"` + + TermCode *TermCodeType `xml:"termCode,omitempty" json:"termCode,omitempty"` + + Termname struct { + Loc *ErilocNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + NL *ErilocNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *ErilocNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *ErilocNameType `xml:"FR,omitempty" json:"FR,omitempty"` + + EN *ErilocNameType `xml:"EN,omitempty" json:"EN,omitempty"` + } `xml:"termname,omitempty" json:"termname,omitempty"` + + TermType *LocTypeType `xml:"termType,omitempty" json:"termType,omitempty"` + + QuayFrom *QuayType `xml:"quayFrom,omitempty" json:"quayFrom,omitempty"` + + QuayTo *QuayType `xml:"quayTo,omitempty" json:"quayTo,omitempty"` + + Ivs *IvsType `xml:"ivs,omitempty" json:"ivs,omitempty"` + + // VTS/IVS (code) acting as the default reporting + // (receiving) point (when departing from this location) + // + IvsVTSCode *ProviderIdType `xml:"ivsVTSCode,omitempty" json:"ivsVTSCode,omitempty"` + + IvsName *IvsNameType `xml:"ivsName,omitempty" json:"ivsName,omitempty"` + + IvsTerm *IvsTermType `xml:"ivsTerm,omitempty" json:"ivsTerm,omitempty"` + + IvsReport *IvsReportType `xml:"ivsReport,omitempty" json:"ivsReport,omitempty"` + + // Nr of possible exits (routes) when departing from + // this location >1 means a reporting or routepoint has to be + // specified. + // + Exits *LocExitsType `xml:"exits,omitempty" json:"exits,omitempty"` + + Exit0 *LocExitsCodeType `xml:"exit0,omitempty" json:"exit0,omitempty"` + + Exit1 *LocExitsCodeType `xml:"exit1,omitempty" json:"exit1,omitempty"` + + Exit2 *LocExitsCodeType `xml:"exit2,omitempty" json:"exit2,omitempty"` + + Exit3 *LocExitsCodeType `xml:"exit3,omitempty" json:"exit3,omitempty"` + + Exit4 *LocExitsCodeType `xml:"exit4,omitempty" json:"exit4,omitempty"` + + Exit5 *LocExitsCodeType `xml:"exit5,omitempty" json:"exit5,omitempty"` + + Exit6 *LocExitsCodeType `xml:"exit6,omitempty" json:"exit6,omitempty"` + + Exit7 *LocExitsCodeType `xml:"exit7,omitempty" json:"exit7,omitempty"` + + Exit8 *LocExitsCodeType `xml:"exit8,omitempty" json:"exit8,omitempty"` + + Exit9 *LocExitsCodeType `xml:"exit9,omitempty" json:"exit9,omitempty"` + + SbbLoCode *LocSbbLoCodeType `xml:"sbbLoCode,omitempty" json:"sbbLoCode,omitempty"` + + SbbCode *LocSbbCodeType `xml:"sbbCode,omitempty" json:"sbbCode,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_hscodeType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_hscode"` + + // Harmonised System type + HsCode *HsCodeType `xml:"hsCode,omitempty" json:"hsCode,omitempty"` + + CodeOld *HsCodeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + Name struct { + Loc *HsCodeNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + EN *HsCodeNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + NL *HsCodeNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *HsCodeNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *HsCodeNameType `xml:"FR,omitempty" json:"FR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + NstCode *NstCodeType `xml:"nstCode,omitempty" json:"nstCode,omitempty"` + + // English (NST2007) description. + NstName *HsCodeNameType `xml:"nstName,omitempty" json:"nstName,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_adncodeType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_adncode"` + + // Be sure to edit, change the basic Simpletypes, + // dont edit any of the (sub)elements from here!!! + // + AdnCode *AdnCodeType `xml:"adnCode,omitempty" json:"adnCode,omitempty"` + + CodeOld *AdnCodeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + Unnr *UnnrType `xml:"unnr,omitempty" json:"unnr,omitempty"` + + AdnClass *AdnClassType `xml:"adnClass,omitempty" json:"adnClass,omitempty"` + + AdnClassif *AdnClassIfType `xml:"adnClassif,omitempty" json:"adnClassif,omitempty"` + + ImoClass *AdnImoClassType `xml:"imoClass,omitempty" json:"imoClass,omitempty"` + + PackGrp *PackGrpType `xml:"packGrp,omitempty" json:"packGrp,omitempty"` + + Name struct { + Loc *AdnCodeNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + EN *AdnCodeNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + NL *AdnCodeNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *AdnCodeNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *AdnCodeNameType `xml:"FR,omitempty" json:"FR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Syn struct { + Loc *GoodSynType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + NL *GoodSynType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *GoodSynType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *GoodSynType `xml:"FR,omitempty" json:"FR,omitempty"` + + EN *GoodSynType `xml:"EN,omitempty" json:"EN,omitempty"` + } `xml:"syn,omitempty" json:"syn,omitempty"` + + HsCode *HsCodeType `xml:"hsCode,omitempty" json:"hsCode,omitempty"` + + NstCode *NstCodeType `xml:"nstCode,omitempty" json:"nstCode,omitempty"` + + // 0, 1, 2, 3, V + ConesBulk *ConesType `xml:"conesBulk,omitempty" json:"conesBulk,omitempty"` + + ConesTank *ConesType `xml:"conesTank,omitempty" json:"conesTank,omitempty"` + + ConesCont *ConesType `xml:"conesCont,omitempty" json:"conesCont,omitempty"` + + // 0, B, V + FlagsBulk *FlagsType `xml:"flagsBulk,omitempty" json:"flagsBulk,omitempty"` + + FlagsTank *FlagsType `xml:"flagsTank,omitempty" json:"flagsTank,omitempty"` + + WarnCard *WarnCardType `xml:"warnCard,omitempty" json:"warnCard,omitempty"` + + WarnId *WarnIdType `xml:"warnId,omitempty" json:"warnId,omitempty"` + + Label1 *AdnLabelType `xml:"label1,omitempty" json:"label1,omitempty"` + + Label2 *AdnLabelType `xml:"label2,omitempty" json:"label2,omitempty"` + + Label3 *AdnLabelType `xml:"label3,omitempty" json:"label3,omitempty"` + + Label4 *AdnLabelType `xml:"label4,omitempty" json:"label4,omitempty"` + + AquaticToxicity *AquaticToxicityType `xml:"aquaticToxicity,omitempty" json:"aquaticToxicity,omitempty"` + + ChemicalStability *ChemicalStabilityType `xml:"chemicalStability,omitempty" json:"chemicalStability,omitempty"` + + CmrProperties *CmrPropertyType `xml:"cmrProperties,omitempty" json:"cmrProperties,omitempty"` + + Floater *FloatersinkerType `xml:"floater,omitempty" json:"floater,omitempty"` + + MaxWeightCodeInlandBulkCont *SignalCodeType `xml:"maxWeightCodeInlandBulkCont,omitempty" json:"maxWeightCodeInlandBulkCont,omitempty"` + + // max weight in kg + MaxWeightInlandBulkCont *WeightType `xml:"maxWeightInlandBulkCont,omitempty" json:"maxWeightInlandBulkCont,omitempty"` + + SignalCodeInlandCont *SignalCodeType `xml:"signalCodeInlandCont,omitempty" json:"signalCodeInlandCont,omitempty"` + + // min weight in kg + MinWeightInlandCont *WeightType `xml:"minWeightInlandCont,omitempty" json:"minWeightInlandCont,omitempty"` + + SignalCodeInlandExcemp *SignalCodeType `xml:"signalCodeInlandExcemp,omitempty" json:"signalCodeInlandExcemp,omitempty"` + + // min weight in kg + MinWeightInlandExcemp *WeightType `xml:"minWeightInlandExcemp,omitempty" json:"minWeightInlandExcemp,omitempty"` + + SignalCodeSeaBulk *SignalCodeType `xml:"signalCodeSeaBulk,omitempty" json:"signalCodeSeaBulk,omitempty"` + + // min weight in kg + MinWeightSeaBulk *WeightType `xml:"minWeightSeaBulk,omitempty" json:"minWeightSeaBulk,omitempty"` + + AggrStatus *AggrStatusType `xml:"aggrStatus,omitempty" json:"aggrStatus,omitempty"` + + TechName *TechNameType `xml:"techName,omitempty" json:"techName,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_conttypeType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_conttype"` + + ContId *ContIdType `xml:"contId,omitempty" json:"contId,omitempty"` + + CodeOld *ContIdType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + // dimensions in cm + Length *DimType `xml:"length,omitempty" json:"length,omitempty"` + + Width *DimType `xml:"width,omitempty" json:"width,omitempty"` + + Height *DimType `xml:"height,omitempty" json:"height,omitempty"` + + // empty weight in kg + Weight *WeightType `xml:"weight,omitempty" json:"weight,omitempty"` + + Name struct { + Loc *ContNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + NL *ContNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *ContNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *ContNameType `xml:"FR,omitempty" json:"FR,omitempty"` + + EN *ContNameType `xml:"EN,omitempty" json:"EN,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_packtypeType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_packtype"` + + PackId *PackIdType `xml:"packId,omitempty" json:"packId,omitempty"` + + CodeOld *PackIdType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + Name struct { + Loc *PackNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + EN *PackNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + NL *PackNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *PackNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *PackNameType `xml:"FR,omitempty" json:"FR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_shiptypeType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_shiptype"` + + ShipType *ShipTypeType `xml:"shipType,omitempty" json:"shipType,omitempty"` + + CodeOld *ShipTypeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + DvkType *DvkTypeType `xml:"dvkType,omitempty" json:"dvkType,omitempty"` + + CraftType *CraftTypeType `xml:"craftType,omitempty" json:"craftType,omitempty"` + + // True = transport cominination type, false=single + // ship + // + Combination *CombinationFlagType `xml:"combination,omitempty" json:"combination,omitempty"` + + Name struct { + Loc *ShiptypeNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + EN *ShiptypeNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + NL *ShiptypeNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *ShiptypeNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *ShiptypeNameType `xml:"FR,omitempty" json:"FR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_countryType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_country"` + + // UN country ISO code 2 chars. + // + CountryCode *CountryCodeType `xml:"countryCode,omitempty" json:"countryCode,omitempty"` + + CodeOld *CountryCodeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + CbsCode *CbscountryCodeType `xml:"cbsCode,omitempty" json:"cbsCode,omitempty"` + + CountryIsoCode3 *CountryCode3Type `xml:"countryIsoCode3,omitempty" json:"countryIsoCode3,omitempty"` + + CountryIsoNum *CountryIsoNumType `xml:"countryIsoNum,omitempty" json:"countryIsoNum,omitempty"` + + LloydsFlag *LloydsflagType `xml:"lloydsFlag,omitempty" json:"lloydsFlag,omitempty"` + + Name struct { + Loc *CountryNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + EN *CountryNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + NL *CountryNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *CountryNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *CountryNameType `xml:"FR,omitempty" json:"FR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type Eri_errorCodeRspType struct { + XMLName xml.Name `xml:"http://rwsreftool/ eri_errorCodeRsp"` + + ErrorCode *EcErrorCodeType `xml:"errorCode,omitempty" json:"errorCode,omitempty"` + + ErrorCodeOld *EcErrorCodeType `xml:"errorCodeOld,omitempty" json:"errorCodeOld,omitempty"` + + ErrorGroup *EcErrorGroupType `xml:"errorGroup,omitempty" json:"errorGroup,omitempty"` + + Name struct { + Loc *EcNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + EN *EcNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + NL *EcNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *EcNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + FR *EcNameType `xml:"FR,omitempty" json:"FR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type NtsIceConditionCodeType struct { + *Nts_dataType + + Thickness *NtsIceConditionCodeThicknessType `xml:"thickness,omitempty" json:"thickness,omitempty"` +} + +type Nts_dataType struct { + XMLName xml.Name `xml:"http://rwsreftool/ nts_data"` + + // Just a string (no enum) to return nts data type + // of the nts_data returned! + // reftype already contains datatype. + // + Ntstype *NtstypeType `xml:"ntstype,omitempty" json:"ntstype,omitempty"` + + Ntscode *NtsCodeType `xml:"ntscode,omitempty" json:"ntscode,omitempty"` + + CodeOld *NtsCodeType `xml:"codeOld,omitempty" json:"codeOld,omitempty"` + + Name struct { + Loc *NtsNameType `xml:"Loc,omitempty" json:"Loc,omitempty"` + + NL *NtsNameType `xml:"NL,omitempty" json:"NL,omitempty"` + + DE *NtsNameType `xml:"DE,omitempty" json:"DE,omitempty"` + + EN *NtsNameType `xml:"EN,omitempty" json:"EN,omitempty"` + + FR *NtsNameType `xml:"FR,omitempty" json:"FR,omitempty"` + + BG *NtsNameType `xml:"BG,omitempty" json:"BG,omitempty"` + + CS *NtsNameType `xml:"CS,omitempty" json:"CS,omitempty"` + + DA *NtsNameType `xml:"DA,omitempty" json:"DA,omitempty"` + + EL *NtsNameType `xml:"EL,omitempty" json:"EL,omitempty"` + + ES *NtsNameType `xml:"ES,omitempty" json:"ES,omitempty"` + + ET *NtsNameType `xml:"ET,omitempty" json:"ET,omitempty"` + + FI *NtsNameType `xml:"FI,omitempty" json:"FI,omitempty"` + + HU *NtsNameType `xml:"HU,omitempty" json:"HU,omitempty"` + + IT *NtsNameType `xml:"IT,omitempty" json:"IT,omitempty"` + + LT *NtsNameType `xml:"LT,omitempty" json:"LT,omitempty"` + + LV *NtsNameType `xml:"LV,omitempty" json:"LV,omitempty"` + + MT *NtsNameType `xml:"MT,omitempty" json:"MT,omitempty"` + + PL *NtsNameType `xml:"PL,omitempty" json:"PL,omitempty"` + + PT *NtsNameType `xml:"PT,omitempty" json:"PT,omitempty"` + + RO *NtsNameType `xml:"RO,omitempty" json:"RO,omitempty"` + + SK *NtsNameType `xml:"SK,omitempty" json:"SK,omitempty"` + + SL *NtsNameType `xml:"SL,omitempty" json:"SL,omitempty"` + + SV *NtsNameType `xml:"SV,omitempty" json:"SV,omitempty"` + + HR *NtsNameType `xml:"HR,omitempty" json:"HR,omitempty"` + + RU *NtsNameType `xml:"RU,omitempty" json:"RU,omitempty"` + + SR *NtsNameType `xml:"SR,omitempty" json:"SR,omitempty"` + } `xml:"name,omitempty" json:"name,omitempty"` + + Source *SourceType `xml:"source,omitempty" json:"source,omitempty"` + + Remarks *RemarksType `xml:"remarks,omitempty" json:"remarks,omitempty"` + + Version *RefrecVersionType `xml:"version,omitempty" json:"version,omitempty"` + + Erased *ErasedType `xml:"erased,omitempty" json:"erased,omitempty"` + + Lastupdate *LastupdateType `xml:"lastupdate,omitempty" json:"lastupdate,omitempty"` +} + +type PageRequestType struct { + XMLName xml.Name `xml:"http://rwsreftool/ page"` + + PageCode *PageCodeType `xml:"pageCode,omitempty" json:"pageCode,omitempty"` + + PageSize *PageSizeType `xml:"pageSize,omitempty" json:"pageSize,omitempty"` +} + +type PageDetailsType struct { + XMLName xml.Name `xml:"http://rwsreftool/ pageDetails"` + + PageCode *PageCodeType `xml:"pageCode,omitempty" json:"pageCode,omitempty"` + + PageSize *PageSizeType `xml:"pageSize,omitempty" json:"pageSize,omitempty"` + + TotalElements *PageSizeType `xml:"totalElements,omitempty" json:"totalElements,omitempty"` + + TotalPages *PageSizeType `xml:"totalPages,omitempty" json:"totalPages,omitempty"` +} + +type RefWeb interface { + + // Error can be either of the following types: + // + // - Exception + + MutateDataXML(request *MutateDataXML) (*MutateDataXMLResponse, error) + + MutateDataXMLContext(ctx context.Context, request *MutateDataXML) (*MutateDataXMLResponse, error) + + // Error can be either of the following types: + // + // - Exception + + MatchByCode(request *MatchByCode) (*MatchByCodeResponse, error) + + MatchByCodeContext(ctx context.Context, request *MatchByCode) (*MatchByCodeResponse, error) + + // Error can be either of the following types: + // + // - Exception + + GetMutations(request *GetMutations) (*GetMutationsResponse, error) + + GetMutationsContext(ctx context.Context, request *GetMutations) (*GetMutationsResponse, error) + + // Error can be either of the following types: + // + // - Exception + + GetRisDataXML(request *GetRisDataXML) (*GetRisDataXMLResponse, error) + + GetRisDataXMLContext(ctx context.Context, request *GetRisDataXML) (*GetRisDataXMLResponse, error) + + // Error can be either of the following types: + // + // - Exception + + MatchByName(request *MatchByName) (*MatchByNameResponse, error) + + MatchByNameContext(ctx context.Context, request *MatchByName) (*MatchByNameResponse, error) + + // Error can be either of the following types: + // + // - Exception + + GetMutatedTables(request *GetMutatedTables) (*GetMutatedTablesResponse, error) + + GetMutatedTablesContext(ctx context.Context, request *GetMutatedTables) (*GetMutatedTablesResponse, error) + + // Error can be either of the following types: + // + // - Exception + + GetDataXML(request *GetDataXML) (*GetDataXMLResponse, error) + + GetDataXMLContext(ctx context.Context, request *GetDataXML) (*GetDataXMLResponse, error) +} + +type refWeb struct { + client *soap.SOAPClient +} + +func NewRefWeb(client *soap.SOAPClient) RefWeb { + return &refWeb{ + client: client, + } +} + +func (service *refWeb) MutateDataXMLContext(ctx context.Context, request *MutateDataXML) (*MutateDataXMLResponse, error) { + response := new(MutateDataXMLResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) MutateDataXML(request *MutateDataXML) (*MutateDataXMLResponse, error) { + return service.MutateDataXMLContext( + context.Background(), + request, + ) +} + +func (service *refWeb) MatchByCodeContext(ctx context.Context, request *MatchByCode) (*MatchByCodeResponse, error) { + response := new(MatchByCodeResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) MatchByCode(request *MatchByCode) (*MatchByCodeResponse, error) { + return service.MatchByCodeContext( + context.Background(), + request, + ) +} + +func (service *refWeb) GetMutationsContext(ctx context.Context, request *GetMutations) (*GetMutationsResponse, error) { + response := new(GetMutationsResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) GetMutations(request *GetMutations) (*GetMutationsResponse, error) { + return service.GetMutationsContext( + context.Background(), + request, + ) +} + +func (service *refWeb) GetRisDataXMLContext(ctx context.Context, request *GetRisDataXML) (*GetRisDataXMLResponse, error) { + response := new(GetRisDataXMLResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) GetRisDataXML(request *GetRisDataXML) (*GetRisDataXMLResponse, error) { + return service.GetRisDataXMLContext( + context.Background(), + request, + ) +} + +func (service *refWeb) MatchByNameContext(ctx context.Context, request *MatchByName) (*MatchByNameResponse, error) { + response := new(MatchByNameResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) MatchByName(request *MatchByName) (*MatchByNameResponse, error) { + return service.MatchByNameContext( + context.Background(), + request, + ) +} + +func (service *refWeb) GetMutatedTablesContext(ctx context.Context, request *GetMutatedTables) (*GetMutatedTablesResponse, error) { + response := new(GetMutatedTablesResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) GetMutatedTables(request *GetMutatedTables) (*GetMutatedTablesResponse, error) { + return service.GetMutatedTablesContext( + context.Background(), + request, + ) +} + +func (service *refWeb) GetDataXMLContext(ctx context.Context, request *GetDataXML) (*GetDataXMLResponse, error) { + response := new(GetDataXMLResponse) + err := service.client.CallContext(ctx, "''", request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (service *refWeb) GetDataXML(request *GetDataXML) (*GetDataXMLResponse, error) { + return service.GetDataXMLContext( + context.Background(), + request, + ) +}