changeset 1799:0e387e0e0d7c

Added SOAP interface for ERDMS service. Needs work (namespaces?).
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 14 Jan 2019 18:59:02 +0100
parents 40cbfd268aa9
children f5c33972497e
files pkg/soap/erdms/service.go
diffstat 1 files changed, 2499 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg/soap/erdms/service.go	Mon Jan 14 18:59:02 2019 +0100
@@ -0,0 +1,2499 @@
+// 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 erdms
+
+import (
+	"encoding/xml"
+	"time"
+
+	"gemma.intevation.de/gemma/pkg/soap"
+)
+
+// against "unused imports"
+var _ time.Time
+var _ xml.Name
+
+// 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
+
+// adn (dgs) labels applicable for a dgs good
+type AdnLabelType string
+
+// Older CBS (number) code (3 digits) use by statistics organisations (backw comp) but replaced by newer iso 3166 (2 letters).
+type CbscountryCodeType 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"
+)
+
+// fairway code (text)
+type FwCodeType string
+
+// ADN dangerous goodnames, description
+type GoodDgsNameType string
+
+// non-dangerous goodnames, description
+type GoodNameType 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 time.Time
+
+// one of the supported languages (basic and additional set), based on ISO 639-1
+type LangType string
+
+const (
+	LangTypeXX 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
+
+// VTS/IVS (code)name active in certain area and acting as a reporting point (when departing from that location)
+type LocVtsCodeType 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
+
+// Password type (belonging to a user, used to identify a user and its role and home country).
+type PasswordType string
+
+// 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"
+
+	ReftypeTypeNts_barrage ReftypeType = "nts_barrage"
+
+	ReftypeTypeNts_communication ReftypeType = "nts_communication"
+
+	ReftypeTypeNts_country ReftypeType = "nts_country"
+
+	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
+
+// ris index (ISRS) code type (full ris index code)
+type RisCodeType string
+
+// locationames as used in the ris index
+type RislocNameType string
+
+// ris idx related ENC's type as used in ris idx (list of ENC id's)
+type RisrelencType string
+
+// ris idx object code type (single code for a junction, termcode etc padded), subpart of the ris idx.
+type RisobjCodeType string
+
+// ris idx communication information TXTDSC
+type RiscomminfoType string
+
+// ris idx object function code type (junction, berths etc)
+type RisobjfuncType string
+
+// ris idx section node id
+type RissectnodeType string
+
+// ris idx national Gauge Code type (can be utilised to store any national coding/id/link for gauges)
+type RisgaugeidType string
+
+// ris idx applicability from /  to km (in hectometres (no decimals))
+type RisapplikmType int64
+
+// ris idx reference level code (indicating the ref level)
+type RisreflevelcodeType string
+
+// ris idx reference level value [cm]
+type RisreflevelvalueType int64
+
+// ris idx geod reference
+type RisgeodrefType string
+
+// ris idx zero point [cm]
+type RiszeropointType int64
+
+// ris idx category of time schedule (cattab)
+type RiscatoftimeschedType string
+
+// ris idx for ship type
+type RisforshiptypeType string
+
+// ris idx use of ship useshp
+type RisuseofshipType string
+
+// ris idx link to external XML file
+type RislinkextxmlType string
+
+// 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
+
+// reftool username(reftool accountname) type, to idetify a user and its role.
+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
+
+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 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 RequestMutationXML struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ requestMutationXML"`
+
+	*RequestMutationXMLType
+}
+
+type RequestMutationXMLResponse struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ requestMutationXMLResponse"`
+
+	*RequestMutationXMLResponseType
+}
+
+type MatchByCodeType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ matchByCodeType"`
+
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	Code string `xml:"code,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+}
+
+type MatchByCodeResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ matchByCodeResponseType"`
+
+	// Indicates how many records are available/were found
+	// (due limitations less records can be returned/available in the resulting xml structure).
+	RecCount *RecCountType `xml:"recCount,omitempty"`
+
+	RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty"`
+}
+
+type MatchByNameType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ matchByNameType"`
+
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	Lang *LangType `xml:"lang,omitempty"`
+
+	Name string `xml:"name,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+}
+
+type MatchByNameResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ matchByNameResponseType"`
+
+	// Indicates how many records are available/were found
+	// (due limitations less records can be returned/available in the resulting xml structure).
+	RecCount *RecCountType `xml:"recCount,omitempty"`
+
+	RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty"`
+}
+
+type GetMutationsType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ getMutationsType"`
+
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	// from, to in datetime format in UTC time
+	FromDate time.Time `xml:"fromDate,omitempty"`
+
+	ToDate time.Time `xml:"toDate,omitempty"`
+}
+
+type GetMutationsResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ getMutationsResponseType"`
+
+	// Indicate how many records are available/were found.
+	RecCount *RecCountType `xml:"recCount,omitempty"`
+
+	RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty"`
+}
+
+type GetDataXMLType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ getDataXMLType"`
+
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	Subcode string `xml:"subcode,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+}
+
+type GetDataXMLResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ getDataXMLResponseType"`
+
+	// Indicates how many records are available/were found.
+	RecCount *RecCountType `xml:"recCount,omitempty"`
+
+	RefdataReturn []*RefdataReturnType `xml:"refdataReturn,omitempty"`
+}
+
+type GetRisDataXMLType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ getRisDataXMLType"`
+
+	Subcode string `xml:"subcode,omitempty"`
+
+	Funcode string `xml:"funcode,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+}
+
+type GetRisDataXMLResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ getRisDataXMLResponseType"`
+
+	// Indicates how many records are available/were found.
+	RecCount *RecCountType `xml:"recCount,omitempty"`
+
+	RisdataReturn []*Ris_idxType `xml:"risdataReturn,omitempty"`
+}
+
+type MutateDataXMLType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ mutateDataXMLType"`
+
+	Username *UserNameType `xml:"username,omitempty"`
+
+	Password *PasswordType `xml:"password,omitempty"`
+
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	RefData *RefdataReturnType `xml:"refData,omitempty"`
+}
+
+type MutateDataXMLResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ mutateDataXMLResponseType"`
+
+	*StatReturnType
+}
+
+type RequestMutationXMLType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ requestMutationXMLType"`
+
+	Username *UserNameType `xml:"username,omitempty"`
+
+	Password *PasswordType `xml:"password,omitempty"`
+
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	InUserList bool `xml:"inUserList,omitempty"`
+
+	RefDataReqMut *RefdataReqMutType `xml:"refDataReqMut,omitempty"`
+}
+
+type RequestMutationXMLResponseType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ requestMutationXMLResponseType"`
+
+	*StatReturnType
+}
+
+type ExceptionType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ exception"`
+
+	// exception code
+	Exception int32 `xml:"exception,omitempty"`
+
+	// exception message in English
+	Message string `xml:"message,omitempty"`
+}
+
+type RefdataReturnType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ refdataReturnType"`
+
+	Reftype struct {
+		Value *ReftypeType
+	} `xml:"reftype,omitempty"`
+
+	Ris_idx *Ris_idxType `xml:"ris_idx,omitempty"`
+
+	Eri_location *Eri_locationType `xml:"eri_location,omitempty"`
+
+	Eri_hscode *Eri_hscodeType `xml:"eri_hscode,omitempty"`
+
+	Eri_adncode struct {
+		*Eri_adncodeType
+	} `xml:"eri_adncode,omitempty"`
+
+	Eri_conttype *Eri_conttypeType `xml:"eri_conttype,omitempty"`
+
+	Eri_packtype *Eri_packtypeType `xml:"eri_packtype,omitempty"`
+
+	Eri_shiptype *Eri_shiptypeType `xml:"eri_shiptype,omitempty"`
+
+	Eri_country *Eri_countryType `xml:"eri_country,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"`
+}
+
+type RefdataReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ refdataReqMutType"`
+
+	// BE SURE to edit the basic (simple)types, DONT edit any of the subelements from here!
+	Reftype *ReftypeType `xml:"reftype,omitempty"`
+
+	Ris_idx *Ris_idxReqMutType `xml:"ris_idx,omitempty"`
+
+	Eri_location *Eri_locationReqMutType `xml:"eri_location,omitempty"`
+
+	Eri_hscode *Eri_hscodeReqMutType `xml:"eri_hscode,omitempty"`
+
+	Eri_adncode *Eri_adncodeReqMutType `xml:"eri_adncode,omitempty"`
+
+	Eri_conttype *Eri_conttypeReqMutType `xml:"eri_conttype,omitempty"`
+
+	Eri_packtype *Eri_packtypeReqMutType `xml:"eri_packtype,omitempty"`
+
+	Eri_shiptype *Eri_shiptypeReqMutType `xml:"eri_shiptype,omitempty"`
+
+	Eri_country *Eri_countryReqMutType `xml:"eri_country,omitempty"`
+}
+
+type StatReturnType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ statReturnType"`
+
+	// 0=ok, 1=warning, 2=error
+	Err int32 `xml:"err,omitempty"`
+
+	Message struct {
+	} `xml:"message,omitempty"`
+}
+
+type Ris_idxType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ ris_idxType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	RisidxCode *RisCodeType `xml:"risidxCode,omitempty"`
+
+	CodeOld *RisCodeType `xml:"codeOld,omitempty"`
+
+	UnlocCC *UnlocCCType `xml:"unlocCC,omitempty"`
+
+	UnlocLC *UnlocLCType `xml:"unlocLC,omitempty"`
+
+	WwsectCode *FwCodeType `xml:"wwsectCode,omitempty"`
+
+	Objcode *RisobjCodeType `xml:"objcode,omitempty"`
+
+	Hectomt *KmCodeType `xml:"hectomt,omitempty"`
+
+	Objfunc *RisobjfuncType `xml:"objfunc,omitempty"`
+
+	Objname struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"objname,omitempty"`
+
+	Locname struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"locname,omitempty"`
+
+	Wwname struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"wwname,omitempty"`
+
+	Routename struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"routename,omitempty"`
+
+	Relrisindex *RisCodeType `xml:"relrisindex,omitempty"`
+
+	Sectionnode *RissectnodeType `xml:"sectionnode,omitempty"`
+
+	Lat *LatlonType `xml:"lat,omitempty"`
+
+	Lon *LatlonType `xml:"lon,omitempty"`
+
+	Relenc *RisrelencType `xml:"relenc,omitempty"`
+
+	Comminfo *RiscomminfoType `xml:"comminfo,omitempty"`
+
+	Gaugeid *RisgaugeidType `xml:"gaugeid,omitempty"`
+
+	Vesselconvlength *DimType `xml:"vesselconvlength,omitempty"`
+
+	Vesselconvbreadth *DimType `xml:"vesselconvbreadth,omitempty"`
+
+	Vesselconvdraught *DimType `xml:"vesselconvdraught,omitempty"`
+
+	Vesselconvairdraught *DimType `xml:"vesselconvairdraught,omitempty"`
+
+	Availablelength *DimType `xml:"availablelength,omitempty"`
+
+	Clearancewidth *DimType `xml:"clearancewidth,omitempty"`
+
+	Availabledepth *DimType `xml:"availabledepth,omitempty"`
+
+	Clearanceheight *DimType `xml:"clearanceheight,omitempty"`
+
+	Applicabilityfromkm *RisapplikmType `xml:"applicabilityfromkm,omitempty"`
+
+	Applicabilitytokm *RisapplikmType `xml:"applicabilitytokm,omitempty"`
+
+	Reflevel1code *RisreflevelcodeType `xml:"reflevel1code,omitempty"`
+
+	Reflevel1value *RisreflevelvalueType `xml:"reflevel1value,omitempty"`
+
+	Reflevel2code *RisreflevelcodeType `xml:"reflevel2code,omitempty"`
+
+	Reflevel2value *RisreflevelvalueType `xml:"reflevel2value,omitempty"`
+
+	Reflevel3code *RisreflevelcodeType `xml:"reflevel3code,omitempty"`
+
+	Reflevel3value *RisreflevelvalueType `xml:"reflevel3value,omitempty"`
+
+	Zeropoint *RiszeropointType `xml:"zeropoint,omitempty"`
+
+	Geodref *RisgeodrefType `xml:"geodref,omitempty"`
+
+	Catoftimesched *RiscatoftimeschedType `xml:"catoftimesched,omitempty"`
+
+	Forshiptype *RisforshiptypeType `xml:"forshiptype,omitempty"`
+
+	Foruseofship *RisuseofshipType `xml:"foruseofship,omitempty"`
+
+	LnktoextXMfiletimesched *RislinkextxmlType `xml:"lnktoextXMfiletimesched,omitempty"`
+
+	LnktoextXMfilepastime *RislinkextxmlType `xml:"lnktoextXMfilepastime,omitempty"`
+
+	Vesselconvlength2 *DimType `xml:"vesselconvlength2,omitempty"`
+
+	Vesselconvbreadth2 *DimType `xml:"vesselconvbreadth2,omitempty"`
+
+	Vesselconvdraught2 *DimType `xml:"vesselconvdraught2,omitempty"`
+
+	Vesselconvairdraught2 *DimType `xml:"vesselconvairdraught2,omitempty"`
+
+	Availablelength2 *DimType `xml:"availablelength2,omitempty"`
+
+	Clearancewidth2 *DimType `xml:"clearancewidth2,omitempty"`
+
+	Availabledepth2 *DimType `xml:"availabledepth2,omitempty"`
+
+	Clearanceheight2 *DimType `xml:"clearanceheight2,omitempty"`
+
+	Vesselconvlength3 *DimType `xml:"vesselconvlength3,omitempty"`
+
+	Vesselconvbreadth3 *DimType `xml:"vesselconvbreadth3,omitempty"`
+
+	Vesselconvdraught3 *DimType `xml:"vesselconvdraught3,omitempty"`
+
+	Vesselconvairdraught3 *DimType `xml:"vesselconvairdraught3,omitempty"`
+
+	Availablelength3 *DimType `xml:"availablelength3,omitempty"`
+
+	Clearancewidth3 *DimType `xml:"clearancewidth3,omitempty"`
+
+	Availabledepth3 *DimType `xml:"availabledepth3,omitempty"`
+
+	Clearanceheight3 *DimType `xml:"clearanceheight3,omitempty"`
+
+	Catoftimesched2 *RiscatoftimeschedType `xml:"catoftimesched2,omitempty"`
+
+	Forshiptype2 *RisforshiptypeType `xml:"forshiptype2,omitempty"`
+
+	Foruseofship2 *RisuseofshipType `xml:"foruseofship2,omitempty"`
+
+	LnktoextXMfiletimesched2 *RislinkextxmlType `xml:"lnktoextXMfiletimesched2,omitempty"`
+
+	LnktoextXMfilepastime2 *RislinkextxmlType `xml:"lnktoextXMfilepastime2,omitempty"`
+
+	Catoftimesched3 *RiscatoftimeschedType `xml:"catoftimesched3,omitempty"`
+
+	Forshiptype3 *RisforshiptypeType `xml:"forshiptype3,omitempty"`
+
+	Foruseofship3 *RisuseofshipType `xml:"foruseofship3,omitempty"`
+
+	LnktoextXMfiletimesched3 *RislinkextxmlType `xml:"lnktoextXMfiletimesched3,omitempty"`
+
+	LnktoextXMfilepastime3 *RislinkextxmlType `xml:"lnktoextXMfilepastime3,omitempty"`
+
+	Startdate *LastupdateType `xml:"startdate,omitempty"`
+
+	Enddate *LastupdateType `xml:"enddate,omitempty"`
+
+	Infodate *LastupdateType `xml:"infodate,omitempty"`
+
+	// specific Ris idx remarks, reasons for change (descriptions as received with the ris idx)
+	RisidxRemarks *RemarksType `xml:"risidxRemarks,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	// remarks regarding the maintance of the ris idx
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_locationType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_locationType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	ErilocCode *ErilocCodeType `xml:"erilocCode,omitempty"`
+
+	CodeOld *ErilocCodeType `xml:"codeOld,omitempty"`
+
+	RisCode *RisCodeType `xml:"risCode,omitempty"`
+
+	LoCode *LoCodeType `xml:"loCode,omitempty"`
+
+	FwCode *FwCodeType `xml:"fwCode,omitempty"`
+
+	TermCode *TermCodeType `xml:"termCode,omitempty"`
+
+	KmCode *KmCodeType `xml:"kmCode,omitempty"`
+
+	Name struct {
+		Loc *ErilocNameType `xml:"Loc,omitempty"`
+
+		NL *ErilocNameType `xml:"NL,omitempty"`
+
+		DE *ErilocNameType `xml:"DE,omitempty"`
+
+		FR *ErilocNameType `xml:"FR,omitempty"`
+
+		EN *ErilocNameType `xml:"EN,omitempty"`
+	} `xml:"name,omitempty"`
+
+	LocType *LocTypeType `xml:"locType,omitempty"`
+
+	Termname struct {
+		Loc *ErilocNameType `xml:"Loc,omitempty"`
+
+		NL *ErilocNameType `xml:"NL,omitempty"`
+
+		DE *ErilocNameType `xml:"DE,omitempty"`
+
+		FR *ErilocNameType `xml:"FR,omitempty"`
+
+		EN *ErilocNameType `xml:"EN,omitempty"`
+	} `xml:"termname,omitempty"`
+
+	QuayFrom *QuayType `xml:"quayFrom,omitempty"`
+
+	QuayTo *QuayType `xml:"quayTo,omitempty"`
+
+	TermType *LocTypeType `xml:"termType,omitempty"`
+
+	Lat *LatlonType `xml:"lat,omitempty"`
+
+	Lon *LatlonType `xml:"lon,omitempty"`
+
+	// VTS/IVS (code) acting as the default reporting (receiving) point (when departing from this llocation)
+	IvsVTSCode *LocVtsCodeType `xml:"ivsVTSCode,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"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_hscodeType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_hscodeType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	HsCode *HsCodeType `xml:"hsCode,omitempty"`
+
+	CodeOld *HsCodeType `xml:"codeOld,omitempty"`
+
+	Name struct {
+		Loc *GoodNameType `xml:"Loc,omitempty"`
+
+		NL *GoodNameType `xml:"NL,omitempty"`
+
+		DE *GoodNameType `xml:"DE,omitempty"`
+
+		FR *GoodNameType `xml:"FR,omitempty"`
+
+		EN *GoodNameType `xml:"EN,omitempty"`
+
+		BG *GoodNameType `xml:"BG,omitempty"`
+
+		CS *GoodNameType `xml:"CS,omitempty"`
+
+		DA *GoodNameType `xml:"DA,omitempty"`
+
+		EL *GoodNameType `xml:"EL,omitempty"`
+
+		ES *GoodNameType `xml:"ES,omitempty"`
+
+		ET *GoodNameType `xml:"ET,omitempty"`
+
+		FI *GoodNameType `xml:"FI,omitempty"`
+
+		HU *GoodNameType `xml:"HU,omitempty"`
+
+		IT *GoodNameType `xml:"IT,omitempty"`
+
+		LT *GoodNameType `xml:"LT,omitempty"`
+
+		LV *GoodNameType `xml:"LV,omitempty"`
+
+		PL *GoodNameType `xml:"PL,omitempty"`
+
+		PT *GoodNameType `xml:"PT,omitempty"`
+
+		RO *GoodNameType `xml:"RO,omitempty"`
+
+		SK *GoodNameType `xml:"SK,omitempty"`
+
+		SL *GoodNameType `xml:"SL,omitempty"`
+
+		SV *GoodNameType `xml:"SV,omitempty"`
+
+		HR *GoodNameType `xml:"HR,omitempty"`
+
+		RU *GoodNameType `xml:"RU,omitempty"`
+
+		SR *GoodNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	NstCode *NstCodeType `xml:"nstCode,omitempty"`
+
+	// English (NST2007) description.
+	NstName *GoodNameType `xml:"nstName,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_adncodeType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_adncodeType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	AdnCode *AdnCodeType `xml:"adnCode,omitempty"`
+
+	CodeOld *AdnCodeType `xml:"codeOld,omitempty"`
+
+	Unnr *UnnrType `xml:"unnr,omitempty"`
+
+	AdnClass *AdnClassType `xml:"adnClass,omitempty"`
+
+	AdnClassif *AdnClassType `xml:"adnClassif,omitempty"`
+
+	ImoClass *AdnClassType `xml:"imoClass,omitempty"`
+
+	PackGrp *PackGrpType `xml:"packGrp,omitempty"`
+
+	Name struct {
+		Loc *GoodDgsNameType `xml:"Loc,omitempty"`
+
+		NL *GoodDgsNameType `xml:"NL,omitempty"`
+
+		DE *GoodDgsNameType `xml:"DE,omitempty"`
+
+		FR *GoodDgsNameType `xml:"FR,omitempty"`
+
+		EN *GoodDgsNameType `xml:"EN,omitempty"`
+
+		BG *GoodDgsNameType `xml:"BG,omitempty"`
+
+		CS *GoodDgsNameType `xml:"CS,omitempty"`
+
+		DA *GoodDgsNameType `xml:"DA,omitempty"`
+
+		EL *GoodDgsNameType `xml:"EL,omitempty"`
+
+		ES *GoodDgsNameType `xml:"ES,omitempty"`
+
+		ET *GoodDgsNameType `xml:"ET,omitempty"`
+
+		FI *GoodDgsNameType `xml:"FI,omitempty"`
+
+		HU *GoodDgsNameType `xml:"HU,omitempty"`
+
+		IT *GoodDgsNameType `xml:"IT,omitempty"`
+
+		LT *GoodDgsNameType `xml:"LT,omitempty"`
+
+		LV *GoodDgsNameType `xml:"LV,omitempty"`
+
+		PL *GoodDgsNameType `xml:"PL,omitempty"`
+
+		PT *GoodDgsNameType `xml:"PT,omitempty"`
+
+		RO *GoodDgsNameType `xml:"RO,omitempty"`
+
+		SK *GoodDgsNameType `xml:"SK,omitempty"`
+
+		SL *GoodDgsNameType `xml:"SL,omitempty"`
+
+		SV *GoodDgsNameType `xml:"SV,omitempty"`
+
+		HR *GoodDgsNameType `xml:"HR,omitempty"`
+
+		RU *GoodDgsNameType `xml:"RU,omitempty"`
+
+		SR *GoodDgsNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Syn struct {
+		Loc *GoodSynType `xml:"Loc,omitempty"`
+
+		NL *GoodSynType `xml:"NL,omitempty"`
+
+		DE *GoodSynType `xml:"DE,omitempty"`
+
+		FR *GoodSynType `xml:"FR,omitempty"`
+
+		EN *GoodSynType `xml:"EN,omitempty"`
+
+		BG *GoodSynType `xml:"BG,omitempty"`
+
+		CS *GoodSynType `xml:"CS,omitempty"`
+
+		DA *GoodSynType `xml:"DA,omitempty"`
+
+		EL *GoodSynType `xml:"EL,omitempty"`
+
+		ES *GoodSynType `xml:"ES,omitempty"`
+
+		ET *GoodSynType `xml:"ET,omitempty"`
+
+		FI *GoodSynType `xml:"FI,omitempty"`
+
+		HU *GoodSynType `xml:"HU,omitempty"`
+
+		IT *GoodSynType `xml:"IT,omitempty"`
+
+		LT *GoodSynType `xml:"LT,omitempty"`
+
+		LV *GoodSynType `xml:"LV,omitempty"`
+
+		PL *GoodSynType `xml:"PL,omitempty"`
+
+		PT *GoodSynType `xml:"PT,omitempty"`
+
+		RO *GoodSynType `xml:"RO,omitempty"`
+
+		SK *GoodSynType `xml:"SK,omitempty"`
+
+		SL *GoodSynType `xml:"SL,omitempty"`
+
+		SV *GoodSynType `xml:"SV,omitempty"`
+
+		HR *GoodSynType `xml:"HR,omitempty"`
+
+		RU *GoodSynType `xml:"RU,omitempty"`
+
+		SR *GoodSynType `xml:"SR,omitempty"`
+	} `xml:"syn,omitempty"`
+
+	HsCode *HsCodeType `xml:"hsCode,omitempty"`
+
+	NstCode *NstCodeType `xml:"nstCode,omitempty"`
+
+	// 0, 1, 2, 3, V
+	ConesBulk *ConesType `xml:"conesBulk,omitempty"`
+
+	ConesTank *ConesType `xml:"conesTank,omitempty"`
+
+	ConesCont *ConesType `xml:"conesCont,omitempty"`
+
+	// 0, B, V
+	FlagsBulk *FlagsType `xml:"flagsBulk,omitempty"`
+
+	FlagsTank *FlagsType `xml:"flagsTank,omitempty"`
+
+	WarnCard *WarnCardType `xml:"warnCard,omitempty"`
+
+	WarnId *WarnIdType `xml:"warnId,omitempty"`
+
+	Label1 *AdnLabelType `xml:"label1,omitempty"`
+
+	Label2 *AdnLabelType `xml:"label2,omitempty"`
+
+	Label3 *AdnLabelType `xml:"label3,omitempty"`
+
+	MaxWeightCodeInlandBulkCont *SignalCodeType `xml:"maxWeightCodeInlandBulkCont,omitempty"`
+
+	// max weight in kg
+	MaxWeightInlandBulkCont *WeightType `xml:"maxWeightInlandBulkCont,omitempty"`
+
+	SignalCodeInlandCont *SignalCodeType `xml:"signalCodeInlandCont,omitempty"`
+
+	// min weight in kg
+	MinWeightInlandCont *WeightType `xml:"minWeightInlandCont,omitempty"`
+
+	SignalCodeInlandExcemp *SignalCodeType `xml:"signalCodeInlandExcemp,omitempty"`
+
+	// min weight in kg
+	MinWeightInlandExcemp *WeightType `xml:"minWeightInlandExcemp,omitempty"`
+
+	SignalCodeSeaBulk *SignalCodeType `xml:"signalCodeSeaBulk,omitempty"`
+
+	// min weight in kg
+	MinWeightSeaBulk *WeightType `xml:"minWeightSeaBulk,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_conttypeType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_conttypeType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	ContId *ContIdType `xml:"contId,omitempty"`
+
+	CodeOld *ContIdType `xml:"codeOld,omitempty"`
+
+	// dimensions in cm
+	Length *DimType `xml:"length,omitempty"`
+
+	Width *DimType `xml:"width,omitempty"`
+
+	Height *DimType `xml:"height,omitempty"`
+
+	// empty weight in kg
+	Weight *WeightType `xml:"weight,omitempty"`
+
+	Name struct {
+		Loc *ContNameType `xml:"Loc,omitempty"`
+
+		NL *ContNameType `xml:"NL,omitempty"`
+
+		DE *ContNameType `xml:"DE,omitempty"`
+
+		FR *ContNameType `xml:"FR,omitempty"`
+
+		EN *ContNameType `xml:"EN,omitempty"`
+
+		BG *ContNameType `xml:"BG,omitempty"`
+
+		CS *ContNameType `xml:"CS,omitempty"`
+
+		DA *ContNameType `xml:"DA,omitempty"`
+
+		EL *ContNameType `xml:"EL,omitempty"`
+
+		ES *ContNameType `xml:"ES,omitempty"`
+
+		ET *ContNameType `xml:"ET,omitempty"`
+
+		FI *ContNameType `xml:"FI,omitempty"`
+
+		HU *ContNameType `xml:"HU,omitempty"`
+
+		IT *ContNameType `xml:"IT,omitempty"`
+
+		LT *ContNameType `xml:"LT,omitempty"`
+
+		LV *ContNameType `xml:"LV,omitempty"`
+
+		PL *ContNameType `xml:"PL,omitempty"`
+
+		PT *ContNameType `xml:"PT,omitempty"`
+
+		RO *ContNameType `xml:"RO,omitempty"`
+
+		SK *ContNameType `xml:"SK,omitempty"`
+
+		SL *ContNameType `xml:"SL,omitempty"`
+
+		SV *ContNameType `xml:"SV,omitempty"`
+
+		HR *ContNameType `xml:"HR,omitempty"`
+
+		RU *ContNameType `xml:"RU,omitempty"`
+
+		SR *ContNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_packtypeType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_packtypeType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	PackId *PackIdType `xml:"packId,omitempty"`
+
+	CodeOld *PackIdType `xml:"codeOld,omitempty"`
+
+	Name struct {
+		Loc *PackNameType `xml:"Loc,omitempty"`
+
+		NL *PackNameType `xml:"NL,omitempty"`
+
+		DE *PackNameType `xml:"DE,omitempty"`
+
+		FR *PackNameType `xml:"FR,omitempty"`
+
+		EN *PackNameType `xml:"EN,omitempty"`
+
+		BG *PackNameType `xml:"BG,omitempty"`
+
+		CS *PackNameType `xml:"CS,omitempty"`
+
+		DA *PackNameType `xml:"DA,omitempty"`
+
+		EL *PackNameType `xml:"EL,omitempty"`
+
+		ES *PackNameType `xml:"ES,omitempty"`
+
+		ET *PackNameType `xml:"ET,omitempty"`
+
+		FI *PackNameType `xml:"FI,omitempty"`
+
+		HU *PackNameType `xml:"HU,omitempty"`
+
+		IT *PackNameType `xml:"IT,omitempty"`
+
+		LT *PackNameType `xml:"LT,omitempty"`
+
+		LV *PackNameType `xml:"LV,omitempty"`
+
+		PL *PackNameType `xml:"PL,omitempty"`
+
+		PT *PackNameType `xml:"PT,omitempty"`
+
+		RO *PackNameType `xml:"RO,omitempty"`
+
+		SK *PackNameType `xml:"SK,omitempty"`
+
+		SL *PackNameType `xml:"SL,omitempty"`
+
+		SV *PackNameType `xml:"SV,omitempty"`
+
+		HR *PackNameType `xml:"HR,omitempty"`
+
+		RU *PackNameType `xml:"RU,omitempty"`
+
+		SR *PackNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_shiptypeType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_shiptypeType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	ShipType *ShipTypeType `xml:"shipType,omitempty"`
+
+	CodeOld *ShipTypeType `xml:"codeOld,omitempty"`
+
+	DvkType *DvkTypeType `xml:"dvkType,omitempty"`
+
+	CraftType *CraftTypeType `xml:"craftType,omitempty"`
+
+	// True = transport cominination type, false=single ship
+	Combination *CombinationFlagType `xml:"combination,omitempty"`
+
+	Name struct {
+		Loc *ShiptypeNameType `xml:"Loc,omitempty"`
+
+		NL *ShiptypeNameType `xml:"NL,omitempty"`
+
+		DE *ShiptypeNameType `xml:"DE,omitempty"`
+
+		FR *ShiptypeNameType `xml:"FR,omitempty"`
+
+		EN *ShiptypeNameType `xml:"EN,omitempty"`
+
+		BG *ShiptypeNameType `xml:"BG,omitempty"`
+
+		CS *ShiptypeNameType `xml:"CS,omitempty"`
+
+		DA *ShiptypeNameType `xml:"DA,omitempty"`
+
+		EL *ShiptypeNameType `xml:"EL,omitempty"`
+
+		ES *ShiptypeNameType `xml:"ES,omitempty"`
+
+		ET *ShiptypeNameType `xml:"ET,omitempty"`
+
+		FI *ShiptypeNameType `xml:"FI,omitempty"`
+
+		HU *ShiptypeNameType `xml:"HU,omitempty"`
+
+		IT *ShiptypeNameType `xml:"IT,omitempty"`
+
+		LT *ShiptypeNameType `xml:"LT,omitempty"`
+
+		LV *ShiptypeNameType `xml:"LV,omitempty"`
+
+		PL *ShiptypeNameType `xml:"PL,omitempty"`
+
+		PT *ShiptypeNameType `xml:"PT,omitempty"`
+
+		RO *ShiptypeNameType `xml:"RO,omitempty"`
+
+		SK *ShiptypeNameType `xml:"SK,omitempty"`
+
+		SL *ShiptypeNameType `xml:"SL,omitempty"`
+
+		SV *ShiptypeNameType `xml:"SV,omitempty"`
+
+		HR *ShiptypeNameType `xml:"HR,omitempty"`
+
+		RU *ShiptypeNameType `xml:"RU,omitempty"`
+
+		SR *ShiptypeNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_countryType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_countryType"`
+
+	// UN country ISO code 2 chars. Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	CountryCode *CountryCodeType `xml:"countryCode,omitempty"`
+
+	CodeOld *CountryCodeType `xml:"codeOld,omitempty"`
+
+	CbsCode *CbscountryCodeType `xml:"cbsCode,omitempty"`
+
+	CountryIsoCode3 *CountryCode3Type `xml:"countryIsoCode3,omitempty"`
+
+	CountryIsoNum *CountryIsoNumType `xml:"countryIsoNum,omitempty"`
+
+	LloydsFlag *LloydsflagType `xml:"lloydsFlag,omitempty"`
+
+	Name struct {
+		Loc *CountryNameType `xml:"Loc,omitempty"`
+
+		NL *CountryNameType `xml:"NL,omitempty"`
+
+		DE *CountryNameType `xml:"DE,omitempty"`
+
+		FR *CountryNameType `xml:"FR,omitempty"`
+
+		EN *CountryNameType `xml:"EN,omitempty"`
+
+		BG *CountryNameType `xml:"BG,omitempty"`
+
+		CS *CountryNameType `xml:"CS,omitempty"`
+
+		DA *CountryNameType `xml:"DA,omitempty"`
+
+		EL *CountryNameType `xml:"EL,omitempty"`
+
+		ES *CountryNameType `xml:"ES,omitempty"`
+
+		ET *CountryNameType `xml:"ET,omitempty"`
+
+		FI *CountryNameType `xml:"FI,omitempty"`
+
+		HU *CountryNameType `xml:"HU,omitempty"`
+
+		IT *CountryNameType `xml:"IT,omitempty"`
+
+		LT *CountryNameType `xml:"LT,omitempty"`
+
+		LV *CountryNameType `xml:"LV,omitempty"`
+
+		PL *CountryNameType `xml:"PL,omitempty"`
+
+		PT *CountryNameType `xml:"PT,omitempty"`
+
+		RO *CountryNameType `xml:"RO,omitempty"`
+
+		SK *CountryNameType `xml:"SK,omitempty"`
+
+		SL *CountryNameType `xml:"SL,omitempty"`
+
+		SV *CountryNameType `xml:"SV,omitempty"`
+
+		HR *CountryNameType `xml:"HR,omitempty"`
+
+		RU *CountryNameType `xml:"RU,omitempty"`
+
+		SR *CountryNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Nts_dataType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ nts_dataType"`
+
+	// Just a string (no enum) to return nts data type of the nts_data returned!
+	// reftype already contains datatype.
+	Ntstype *NtstypeType `xml:"ntstype,omitempty"`
+
+	Ntscode *NtsCodeType `xml:"ntscode,omitempty"`
+
+	CodeOld *NtsCodeType `xml:"codeOld,omitempty"`
+
+	Name struct {
+		Loc *NtsNameType `xml:"Loc,omitempty"`
+
+		NL *NtsNameType `xml:"NL,omitempty"`
+
+		DE *NtsNameType `xml:"DE,omitempty"`
+
+		EN *NtsNameType `xml:"EN,omitempty"`
+
+		FR *NtsNameType `xml:"FR,omitempty"`
+
+		BG *NtsNameType `xml:"BG,omitempty"`
+
+		CS *NtsNameType `xml:"CS,omitempty"`
+
+		DA *NtsNameType `xml:"DA,omitempty"`
+
+		EL *NtsNameType `xml:"EL,omitempty"`
+
+		ES *NtsNameType `xml:"ES,omitempty"`
+
+		ET *NtsNameType `xml:"ET,omitempty"`
+
+		FI *NtsNameType `xml:"FI,omitempty"`
+
+		HU *NtsNameType `xml:"HU,omitempty"`
+
+		IT *NtsNameType `xml:"IT,omitempty"`
+
+		LT *NtsNameType `xml:"LT,omitempty"`
+
+		LV *NtsNameType `xml:"LV,omitempty"`
+
+		PL *NtsNameType `xml:"PL,omitempty"`
+
+		PT *NtsNameType `xml:"PT,omitempty"`
+
+		RO *NtsNameType `xml:"RO,omitempty"`
+
+		SK *NtsNameType `xml:"SK,omitempty"`
+
+		SL *NtsNameType `xml:"SL,omitempty"`
+
+		SV *NtsNameType `xml:"SV,omitempty"`
+
+		HR *NtsNameType `xml:"HR,omitempty"`
+
+		RU *NtsNameType `xml:"RU,omitempty"`
+
+		SR *NtsNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Ris_idxReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ ris_idxReqMutType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	RisidxCode *RisCodeType `xml:"risidxCode,omitempty"`
+
+	CodeOld *RisCodeType `xml:"codeOld,omitempty"`
+
+	UnlocCC *UnlocCCType `xml:"unlocCC,omitempty"`
+
+	UnlocLC *UnlocLCType `xml:"unlocLC,omitempty"`
+
+	WwsectCode *FwCodeType `xml:"wwsectCode,omitempty"`
+
+	Objcode *RisobjCodeType `xml:"objcode,omitempty"`
+
+	Hectomt *KmCodeType `xml:"hectomt,omitempty"`
+
+	Objfunc *RisobjfuncType `xml:"objfunc,omitempty"`
+
+	Objname struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"objname,omitempty"`
+
+	Locname struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"locname,omitempty"`
+
+	Wwname struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"wwname,omitempty"`
+
+	Routename struct {
+		Loc *RislocNameType `xml:"Loc,omitempty"`
+	} `xml:"routename,omitempty"`
+
+	Relrisindex *RisCodeType `xml:"relrisindex,omitempty"`
+
+	Sectionnode *RissectnodeType `xml:"sectionnode,omitempty"`
+
+	Lat *LatlonType `xml:"lat,omitempty"`
+
+	Lon *LatlonType `xml:"lon,omitempty"`
+
+	Relenc *RisrelencType `xml:"relenc,omitempty"`
+
+	Comminfo *RiscomminfoType `xml:"comminfo,omitempty"`
+
+	Gaugeid *RisgaugeidType `xml:"gaugeid,omitempty"`
+
+	Vesselconvlength *DimType `xml:"vesselconvlength,omitempty"`
+
+	Vesselconvbreadth *DimType `xml:"vesselconvbreadth,omitempty"`
+
+	Vesselconvdraught *DimType `xml:"vesselconvdraught,omitempty"`
+
+	Vesselconvairdraught *DimType `xml:"vesselconvairdraught,omitempty"`
+
+	Availablelength *DimType `xml:"availablelength,omitempty"`
+
+	Clearancewidth *DimType `xml:"clearancewidth,omitempty"`
+
+	Availabledepth *DimType `xml:"availabledepth,omitempty"`
+
+	Clearanceheight *DimType `xml:"clearanceheight,omitempty"`
+
+	Applicabilityfromkm *RisapplikmType `xml:"applicabilityfromkm,omitempty"`
+
+	Applicabilitytokm *RisapplikmType `xml:"applicabilitytokm,omitempty"`
+
+	Reflevel1code *RisreflevelcodeType `xml:"reflevel1code,omitempty"`
+
+	Reflevel1value *RisreflevelvalueType `xml:"reflevel1value,omitempty"`
+
+	Reflevel2code *RisreflevelcodeType `xml:"reflevel2code,omitempty"`
+
+	Reflevel2value *RisreflevelvalueType `xml:"reflevel2value,omitempty"`
+
+	Reflevel3code *RisreflevelcodeType `xml:"reflevel3code,omitempty"`
+
+	Reflevel3value *RisreflevelvalueType `xml:"reflevel3value,omitempty"`
+
+	Zeropoint *RiszeropointType `xml:"zeropoint,omitempty"`
+
+	Geodref *RisgeodrefType `xml:"geodref,omitempty"`
+
+	Catoftimesched *RiscatoftimeschedType `xml:"catoftimesched,omitempty"`
+
+	Forshiptype *RisforshiptypeType `xml:"forshiptype,omitempty"`
+
+	Foruseofship *RisuseofshipType `xml:"foruseofship,omitempty"`
+
+	LnktoextXMfiletimesched *RislinkextxmlType `xml:"lnktoextXMfiletimesched,omitempty"`
+
+	LnktoextXMfilepastime *RislinkextxmlType `xml:"lnktoextXMfilepastime,omitempty"`
+
+	Vesselconvlength2 *DimType `xml:"vesselconvlength2,omitempty"`
+
+	Vesselconvbreadth2 *DimType `xml:"vesselconvbreadth2,omitempty"`
+
+	Vesselconvdraught2 *DimType `xml:"vesselconvdraught2,omitempty"`
+
+	Vesselconvairdraught2 *DimType `xml:"vesselconvairdraught2,omitempty"`
+
+	Availablelength2 *DimType `xml:"availablelength2,omitempty"`
+
+	Clearancewidth2 *DimType `xml:"clearancewidth2,omitempty"`
+
+	Availabledepth2 *DimType `xml:"availabledepth2,omitempty"`
+
+	Clearanceheight2 *DimType `xml:"clearanceheight2,omitempty"`
+
+	Vesselconvlength3 *DimType `xml:"vesselconvlength3,omitempty"`
+
+	Vesselconvbreadth3 *DimType `xml:"vesselconvbreadth3,omitempty"`
+
+	Vesselconvdraught3 *DimType `xml:"vesselconvdraught3,omitempty"`
+
+	Vesselconvairdraught3 *DimType `xml:"vesselconvairdraught3,omitempty"`
+
+	Availablelength3 *DimType `xml:"availablelength3,omitempty"`
+
+	Clearancewidth3 *DimType `xml:"clearancewidth3,omitempty"`
+
+	Availabledepth3 *DimType `xml:"availabledepth3,omitempty"`
+
+	Clearanceheight3 *DimType `xml:"clearanceheight3,omitempty"`
+
+	Catoftimesched2 *RiscatoftimeschedType `xml:"catoftimesched2,omitempty"`
+
+	Forshiptype2 *RisforshiptypeType `xml:"forshiptype2,omitempty"`
+
+	Foruseofship2 *RisuseofshipType `xml:"foruseofship2,omitempty"`
+
+	LnktoextXMfiletimesched2 *RislinkextxmlType `xml:"lnktoextXMfiletimesched2,omitempty"`
+
+	LnktoextXMfilepastime2 *RislinkextxmlType `xml:"lnktoextXMfilepastime2,omitempty"`
+
+	Catoftimesched3 *RiscatoftimeschedType `xml:"catoftimesched3,omitempty"`
+
+	Forshiptype3 *RisforshiptypeType `xml:"forshiptype3,omitempty"`
+
+	Foruseofship3 *RisuseofshipType `xml:"foruseofship3,omitempty"`
+
+	LnktoextXMfiletimesched3 *RislinkextxmlType `xml:"lnktoextXMfiletimesched3,omitempty"`
+
+	LnktoextXMfilepastime3 *RislinkextxmlType `xml:"lnktoextXMfilepastime3,omitempty"`
+
+	Startdate *LastupdateType `xml:"startdate,omitempty"`
+
+	Enddate *LastupdateType `xml:"enddate,omitempty"`
+
+	Infodate *LastupdateType `xml:"infodate,omitempty"`
+
+	// specific Ris idx remarks/reasons for change, as received with the ris idx
+	RisidxRemarks *RemarksType `xml:"risidxRemarks,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	// remarks regarding the maintance of the ris idx
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_locationReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_locationReqMutType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	ErilocCode *ErilocCodeType `xml:"erilocCode,omitempty"`
+
+	CodeOld *ErilocCodeType `xml:"codeOld,omitempty"`
+
+	RisCode *RisCodeType `xml:"risCode,omitempty"`
+
+	LoCode *LoCodeType `xml:"loCode,omitempty"`
+
+	FwCode *FwCodeType `xml:"fwCode,omitempty"`
+
+	TermCode *TermCodeType `xml:"termCode,omitempty"`
+
+	KmCode *KmCodeType `xml:"kmCode,omitempty"`
+
+	Name struct {
+		Loc *ErilocNameType `xml:"Loc,omitempty"`
+
+		NL *ErilocNameType `xml:"NL,omitempty"`
+
+		DE *ErilocNameType `xml:"DE,omitempty"`
+
+		FR *ErilocNameType `xml:"FR,omitempty"`
+
+		EN *ErilocNameType `xml:"EN,omitempty"`
+	} `xml:"name,omitempty"`
+
+	LocType *LocTypeType `xml:"locType,omitempty"`
+
+	Termname struct {
+		Loc *ErilocNameType `xml:"Loc,omitempty"`
+
+		NL *ErilocNameType `xml:"NL,omitempty"`
+
+		DE *ErilocNameType `xml:"DE,omitempty"`
+
+		FR *ErilocNameType `xml:"FR,omitempty"`
+
+		EN *ErilocNameType `xml:"EN,omitempty"`
+	} `xml:"termname,omitempty"`
+
+	QuayFrom *QuayType `xml:"quayFrom,omitempty"`
+
+	QuayTo *QuayType `xml:"quayTo,omitempty"`
+
+	TermType *LocTypeType `xml:"termType,omitempty"`
+
+	Lat *LatlonType `xml:"lat,omitempty"`
+
+	Lon *LatlonType `xml:"lon,omitempty"`
+
+	IvsVTSCode *LocVtsCodeType `xml:"ivsVTSCode,omitempty"`
+
+	Exits *LocExitsType `xml:"exits,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_hscodeReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_hscodeReqMutType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	HsCode *HsCodeType `xml:"hsCode,omitempty"`
+
+	CodeOld *HsCodeType `xml:"codeOld,omitempty"`
+
+	Name struct {
+		Loc *GoodNameType `xml:"Loc,omitempty"`
+
+		NL *GoodNameType `xml:"NL,omitempty"`
+
+		DE *GoodNameType `xml:"DE,omitempty"`
+
+		FR *GoodNameType `xml:"FR,omitempty"`
+
+		EN *GoodNameType `xml:"EN,omitempty"`
+
+		BG *GoodNameType `xml:"BG,omitempty"`
+
+		CS *GoodNameType `xml:"CS,omitempty"`
+
+		DA *GoodNameType `xml:"DA,omitempty"`
+
+		EL *GoodNameType `xml:"EL,omitempty"`
+
+		ES *GoodNameType `xml:"ES,omitempty"`
+
+		ET *GoodNameType `xml:"ET,omitempty"`
+
+		FI *GoodNameType `xml:"FI,omitempty"`
+
+		HU *GoodNameType `xml:"HU,omitempty"`
+
+		IT *GoodNameType `xml:"IT,omitempty"`
+
+		LT *GoodNameType `xml:"LT,omitempty"`
+
+		LV *GoodNameType `xml:"LV,omitempty"`
+
+		PL *GoodNameType `xml:"PL,omitempty"`
+
+		PT *GoodNameType `xml:"PT,omitempty"`
+
+		RO *GoodNameType `xml:"RO,omitempty"`
+
+		SK *GoodNameType `xml:"SK,omitempty"`
+
+		SL *GoodNameType `xml:"SL,omitempty"`
+
+		SV *GoodNameType `xml:"SV,omitempty"`
+
+		HR *GoodNameType `xml:"HR,omitempty"`
+
+		RU *GoodNameType `xml:"RU,omitempty"`
+
+		SR *GoodNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	NstCode *NstCodeType `xml:"nstCode,omitempty"`
+
+	NstName *GoodNameType `xml:"nstName,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_adncodeReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_adncodeReqMutType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	AdnCode *AdnCodeType `xml:"adnCode,omitempty"`
+
+	CodeOld *AdnCodeType `xml:"codeOld,omitempty"`
+
+	Unnr *UnnrType `xml:"unnr,omitempty"`
+
+	AdnClass *AdnClassType `xml:"adnClass,omitempty"`
+
+	AdnClassif *AdnClassType `xml:"adnClassif,omitempty"`
+
+	ImoClass *AdnClassType `xml:"imoClass,omitempty"`
+
+	PackGrp *PackGrpType `xml:"packGrp,omitempty"`
+
+	Name struct {
+		Loc *GoodDgsNameType `xml:"Loc,omitempty"`
+
+		NL *GoodDgsNameType `xml:"NL,omitempty"`
+
+		DE *GoodDgsNameType `xml:"DE,omitempty"`
+
+		FR *GoodDgsNameType `xml:"FR,omitempty"`
+
+		EN *GoodDgsNameType `xml:"EN,omitempty"`
+
+		BG *GoodDgsNameType `xml:"BG,omitempty"`
+
+		CS *GoodDgsNameType `xml:"CS,omitempty"`
+
+		DA *GoodDgsNameType `xml:"DA,omitempty"`
+
+		EL *GoodDgsNameType `xml:"EL,omitempty"`
+
+		ES *GoodDgsNameType `xml:"ES,omitempty"`
+
+		ET *GoodDgsNameType `xml:"ET,omitempty"`
+
+		FI *GoodDgsNameType `xml:"FI,omitempty"`
+
+		HU *GoodDgsNameType `xml:"HU,omitempty"`
+
+		IT *GoodDgsNameType `xml:"IT,omitempty"`
+
+		LT *GoodDgsNameType `xml:"LT,omitempty"`
+
+		LV *GoodDgsNameType `xml:"LV,omitempty"`
+
+		PL *GoodDgsNameType `xml:"PL,omitempty"`
+
+		PT *GoodDgsNameType `xml:"PT,omitempty"`
+
+		RO *GoodDgsNameType `xml:"RO,omitempty"`
+
+		SK *GoodDgsNameType `xml:"SK,omitempty"`
+
+		SL *GoodDgsNameType `xml:"SL,omitempty"`
+
+		SV *GoodDgsNameType `xml:"SV,omitempty"`
+
+		HR *GoodDgsNameType `xml:"HR,omitempty"`
+
+		RU *GoodDgsNameType `xml:"RU,omitempty"`
+
+		SR *GoodDgsNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Syn struct {
+		Loc *GoodSynType `xml:"Loc,omitempty"`
+
+		NL *GoodSynType `xml:"NL,omitempty"`
+
+		DE *GoodSynType `xml:"DE,omitempty"`
+
+		FR *GoodSynType `xml:"FR,omitempty"`
+
+		EN *GoodSynType `xml:"EN,omitempty"`
+
+		BG *GoodSynType `xml:"BG,omitempty"`
+
+		CS *GoodSynType `xml:"CS,omitempty"`
+
+		DA *GoodSynType `xml:"DA,omitempty"`
+
+		EL *GoodSynType `xml:"EL,omitempty"`
+
+		ES *GoodSynType `xml:"ES,omitempty"`
+
+		ET *GoodSynType `xml:"ET,omitempty"`
+
+		FI *GoodSynType `xml:"FI,omitempty"`
+
+		HU *GoodSynType `xml:"HU,omitempty"`
+
+		IT *GoodSynType `xml:"IT,omitempty"`
+
+		LT *GoodSynType `xml:"LT,omitempty"`
+
+		LV *GoodSynType `xml:"LV,omitempty"`
+
+		PL *GoodSynType `xml:"PL,omitempty"`
+
+		PT *GoodSynType `xml:"PT,omitempty"`
+
+		RO *GoodSynType `xml:"RO,omitempty"`
+
+		SK *GoodSynType `xml:"SK,omitempty"`
+
+		SL *GoodSynType `xml:"SL,omitempty"`
+
+		SV *GoodSynType `xml:"SV,omitempty"`
+
+		HR *GoodSynType `xml:"HR,omitempty"`
+
+		RU *GoodSynType `xml:"RU,omitempty"`
+
+		SR *GoodSynType `xml:"SR,omitempty"`
+	} `xml:"syn,omitempty"`
+
+	HsCode *HsCodeType `xml:"hsCode,omitempty"`
+
+	NstCode *NstCodeType `xml:"nstCode,omitempty"`
+
+	// 0, 1, 2, 3, V (Inland)
+	ConesBulk *ConesType `xml:"conesBulk,omitempty"`
+
+	ConesTank *ConesType `xml:"conesTank,omitempty"`
+
+	ConesCont *ConesType `xml:"conesCont,omitempty"`
+
+	// 0, B, V (Seagoing)
+	FlagsBulk *FlagsType `xml:"flagsBulk,omitempty"`
+
+	FlagsTank *FlagsType `xml:"flagsTank,omitempty"`
+
+	WarnCard *WarnCardType `xml:"warnCard,omitempty"`
+
+	WarnId *WarnIdType `xml:"warnId,omitempty"`
+
+	Label1 *AdnLabelType `xml:"label1,omitempty"`
+
+	Label2 *AdnLabelType `xml:"label2,omitempty"`
+
+	Label3 *AdnLabelType `xml:"label3,omitempty"`
+
+	MaxWeightCodeInlandBulkCont *SignalCodeType `xml:"maxWeightCodeInlandBulkCont,omitempty"`
+
+	// max weight in kg
+	MaxWeightInlandBulkCont *WeightType `xml:"maxWeightInlandBulkCont,omitempty"`
+
+	SignalCodeInlandCont *SignalCodeType `xml:"signalCodeInlandCont,omitempty"`
+
+	// min weight in kg
+	MinWeightInlandCont *WeightType `xml:"minWeightInlandCont,omitempty"`
+
+	SignalCodeInlandExcemp *SignalCodeType `xml:"signalCodeInlandExcemp,omitempty"`
+
+	// min weight in kg
+	MinWeightInlandExcemp *WeightType `xml:"minWeightInlandExcemp,omitempty"`
+
+	SignalCodeSeaBulk *SignalCodeType `xml:"signalCodeSeaBulk,omitempty"`
+
+	// min weight in kg
+	MinWeightSeaBulk *WeightType `xml:"minWeightSeaBulk,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_conttypeReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_conttypeReqMutType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	ContId *ContIdType `xml:"contId,omitempty"`
+
+	CodeOld *ContIdType `xml:"codeOld,omitempty"`
+
+	// dimensions in cm
+	Length *DimType `xml:"length,omitempty"`
+
+	Width *DimType `xml:"width,omitempty"`
+
+	Height *DimType `xml:"height,omitempty"`
+
+	// empty weight in kg
+	Weight *DimType `xml:"weight,omitempty"`
+
+	Name struct {
+		Loc *ContNameType `xml:"Loc,omitempty"`
+
+		NL *ContNameType `xml:"NL,omitempty"`
+
+		DE *ContNameType `xml:"DE,omitempty"`
+
+		FR *ContNameType `xml:"FR,omitempty"`
+
+		EN *ContNameType `xml:"EN,omitempty"`
+
+		BG *ContNameType `xml:"BG,omitempty"`
+
+		CS *ContNameType `xml:"CS,omitempty"`
+
+		DA *ContNameType `xml:"DA,omitempty"`
+
+		EL *ContNameType `xml:"EL,omitempty"`
+
+		ES *ContNameType `xml:"ES,omitempty"`
+
+		ET *ContNameType `xml:"ET,omitempty"`
+
+		FI *ContNameType `xml:"FI,omitempty"`
+
+		HU *ContNameType `xml:"HU,omitempty"`
+
+		IT *ContNameType `xml:"IT,omitempty"`
+
+		LT *ContNameType `xml:"LT,omitempty"`
+
+		LV *ContNameType `xml:"LV,omitempty"`
+
+		PL *ContNameType `xml:"PL,omitempty"`
+
+		PT *ContNameType `xml:"PT,omitempty"`
+
+		RO *ContNameType `xml:"RO,omitempty"`
+
+		SK *ContNameType `xml:"SK,omitempty"`
+
+		SL *ContNameType `xml:"SL,omitempty"`
+
+		SV *ContNameType `xml:"SV,omitempty"`
+
+		HR *ContNameType `xml:"HR,omitempty"`
+
+		RU *ContNameType `xml:"RU,omitempty"`
+
+		SR *ContNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_packtypeReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_packtypeReqMutType"`
+
+	// Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	PackId *PackIdType `xml:"packId,omitempty"`
+
+	CodeOld *PackIdType `xml:"codeOld,omitempty"`
+
+	Name struct {
+		Loc *PackNameType `xml:"Loc,omitempty"`
+
+		NL *PackNameType `xml:"NL,omitempty"`
+
+		DE *PackNameType `xml:"DE,omitempty"`
+
+		FR *PackNameType `xml:"FR,omitempty"`
+
+		EN *PackNameType `xml:"EN,omitempty"`
+
+		BG *PackNameType `xml:"BG,omitempty"`
+
+		CS *PackNameType `xml:"CS,omitempty"`
+
+		DA *PackNameType `xml:"DA,omitempty"`
+
+		EL *PackNameType `xml:"EL,omitempty"`
+
+		ES *PackNameType `xml:"ES,omitempty"`
+
+		ET *PackNameType `xml:"ET,omitempty"`
+
+		FI *PackNameType `xml:"FI,omitempty"`
+
+		HU *PackNameType `xml:"HU,omitempty"`
+
+		IT *PackNameType `xml:"IT,omitempty"`
+
+		LT *PackNameType `xml:"LT,omitempty"`
+
+		LV *PackNameType `xml:"LV,omitempty"`
+
+		PL *PackNameType `xml:"PL,omitempty"`
+
+		PT *PackNameType `xml:"PT,omitempty"`
+
+		RO *PackNameType `xml:"RO,omitempty"`
+
+		SK *PackNameType `xml:"SK,omitempty"`
+
+		SL *PackNameType `xml:"SL,omitempty"`
+
+		SV *PackNameType `xml:"SV,omitempty"`
+
+		HR *PackNameType `xml:"HR,omitempty"`
+
+		RU *PackNameType `xml:"RU,omitempty"`
+
+		SR *PackNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_shiptypeReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_shiptypeReqMutType"`
+
+	// UN rec 28. Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	ShipType *ShipTypeType `xml:"shipType,omitempty"`
+
+	CodeOld *ShipTypeType `xml:"codeOld,omitempty"`
+
+	DvkType *DvkTypeType `xml:"dvkType,omitempty"`
+
+	CraftType *CraftTypeType `xml:"craftType,omitempty"`
+
+	// True = transport cominination type, false=single ship
+	Combination *CombinationFlagType `xml:"combination,omitempty"`
+
+	Name struct {
+		Loc *ShiptypeNameType `xml:"Loc,omitempty"`
+
+		NL *ShiptypeNameType `xml:"NL,omitempty"`
+
+		DE *ShiptypeNameType `xml:"DE,omitempty"`
+
+		FR *ShiptypeNameType `xml:"FR,omitempty"`
+
+		EN *ShiptypeNameType `xml:"EN,omitempty"`
+
+		BG *ShiptypeNameType `xml:"BG,omitempty"`
+
+		CS *ShiptypeNameType `xml:"CS,omitempty"`
+
+		DA *ShiptypeNameType `xml:"DA,omitempty"`
+
+		EL *ShiptypeNameType `xml:"EL,omitempty"`
+
+		ES *ShiptypeNameType `xml:"ES,omitempty"`
+
+		ET *ShiptypeNameType `xml:"ET,omitempty"`
+
+		FI *ShiptypeNameType `xml:"FI,omitempty"`
+
+		HU *ShiptypeNameType `xml:"HU,omitempty"`
+
+		IT *ShiptypeNameType `xml:"IT,omitempty"`
+
+		LT *ShiptypeNameType `xml:"LT,omitempty"`
+
+		LV *ShiptypeNameType `xml:"LV,omitempty"`
+
+		PL *ShiptypeNameType `xml:"PL,omitempty"`
+
+		PT *ShiptypeNameType `xml:"PT,omitempty"`
+
+		RO *ShiptypeNameType `xml:"RO,omitempty"`
+
+		SK *ShiptypeNameType `xml:"SK,omitempty"`
+
+		SL *ShiptypeNameType `xml:"SL,omitempty"`
+
+		SV *ShiptypeNameType `xml:"SV,omitempty"`
+
+		HR *ShiptypeNameType `xml:"HR,omitempty"`
+
+		RU *ShiptypeNameType `xml:"RU,omitempty"`
+
+		SR *ShiptypeNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type Eri_countryReqMutType struct {
+	XMLName xml.Name `xml:"http://rwsreftool/ eri_countryReqMutType"`
+
+	// UN country ISO code 2 chars. Be sure to edit, change the basic Simpletypes, dont edit any of the (sub)elements from here!!!
+	CountryCode *CountryCodeType `xml:"countryCode,omitempty"`
+
+	CodeOld *CountryCodeType `xml:"codeOld,omitempty"`
+
+	CbsCode *CbscountryCodeType `xml:"cbsCode,omitempty"`
+
+	CountryIsoCode3 *CountryCode3Type `xml:"countryIsoCode3,omitempty"`
+
+	CountryIsoNum *CountryIsoNumType `xml:"countryIsoNum,omitempty"`
+
+	LloydsFlag *LloydsflagType `xml:"lloydsFlag,omitempty"`
+
+	Name struct {
+		Loc *CountryNameType `xml:"Loc,omitempty"`
+
+		NL *CountryNameType `xml:"NL,omitempty"`
+
+		DE *CountryNameType `xml:"DE,omitempty"`
+
+		FR *CountryNameType `xml:"FR,omitempty"`
+
+		EN *CountryNameType `xml:"EN,omitempty"`
+
+		BG *CountryNameType `xml:"BG,omitempty"`
+
+		CS *CountryNameType `xml:"CS,omitempty"`
+
+		DA *CountryNameType `xml:"DA,omitempty"`
+
+		EL *CountryNameType `xml:"EL,omitempty"`
+
+		ES *CountryNameType `xml:"ES,omitempty"`
+
+		ET *CountryNameType `xml:"ET,omitempty"`
+
+		FI *CountryNameType `xml:"FI,omitempty"`
+
+		HU *CountryNameType `xml:"HU,omitempty"`
+
+		IT *CountryNameType `xml:"IT,omitempty"`
+
+		LT *CountryNameType `xml:"LT,omitempty"`
+
+		LV *CountryNameType `xml:"LV,omitempty"`
+
+		PL *CountryNameType `xml:"PL,omitempty"`
+
+		PT *CountryNameType `xml:"PT,omitempty"`
+
+		RO *CountryNameType `xml:"RO,omitempty"`
+
+		SK *CountryNameType `xml:"SK,omitempty"`
+
+		SL *CountryNameType `xml:"SL,omitempty"`
+
+		SV *CountryNameType `xml:"SV,omitempty"`
+
+		HR *CountryNameType `xml:"HR,omitempty"`
+
+		RU *CountryNameType `xml:"RU,omitempty"`
+
+		SR *CountryNameType `xml:"SR,omitempty"`
+	} `xml:"name,omitempty"`
+
+	Source *SourceType `xml:"source,omitempty"`
+
+	Remarks *RemarksType `xml:"remarks,omitempty"`
+
+	Version *RefrecVersionType `xml:"version,omitempty"`
+
+	Erased *ErasedType `xml:"erased,omitempty"`
+
+	Lastupdate *LastupdateType `xml:"lastupdate,omitempty"`
+}
+
+type RefWeb interface {
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	MatchByCode(request *MatchByCode) (*MatchByCodeResponse, error)
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	MatchByName(request *MatchByName) (*MatchByNameResponse, error)
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	GetMutations(request *GetMutations) (*GetMutationsResponse, error)
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	GetDataXML(request *GetDataXML) (*GetDataXMLResponse, error)
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	GetRisDataXML(request *GetRisDataXML) (*GetRisDataXMLResponse, error)
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	MutateDataXML(request *MutateDataXML) (*MutateDataXMLResponse, error)
+
+	// Error can be either of the following types:
+	//
+	//   - exception
+
+	RequestMutationXML(request *RequestMutationXML) (*RequestMutationXMLResponse, error)
+}
+
+type refWeb struct {
+	client *soap.SOAPClient
+}
+
+func NewRefWeb(client *soap.SOAPClient) RefWeb {
+	return &refWeb{
+		client: client,
+	}
+}
+
+func (service *refWeb) MatchByCode(request *MatchByCode) (*MatchByCodeResponse, error) {
+	response := new(MatchByCodeResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
+func (service *refWeb) MatchByName(request *MatchByName) (*MatchByNameResponse, error) {
+	response := new(MatchByNameResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
+func (service *refWeb) GetMutations(request *GetMutations) (*GetMutationsResponse, error) {
+	response := new(GetMutationsResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
+func (service *refWeb) GetDataXML(request *GetDataXML) (*GetDataXMLResponse, error) {
+	response := new(GetDataXMLResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
+func (service *refWeb) GetRisDataXML(request *GetRisDataXML) (*GetRisDataXMLResponse, error) {
+	response := new(GetRisDataXMLResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
+func (service *refWeb) MutateDataXML(request *MutateDataXML) (*MutateDataXMLResponse, error) {
+	response := new(MutateDataXMLResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
+func (service *refWeb) RequestMutationXML(request *RequestMutationXML) (*RequestMutationXMLResponse, error) {
+	response := new(RequestMutationXMLResponse)
+	err := service.client.Call("", request, response)
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}