//------------------------------------------------------------------------------
// <auto-generated>
//     Ten kod został wygenerowany przez narzędzie.
//     Wersja wykonawcza:4.0.30319.42000
//
//     Zmiany w tym pliku mogą spowodować nieprawidłowe zachowanie i zostaną utracone, jeśli
//     kod zostanie ponownie wygenerowany.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=4.8.3928.0.
// 
namespace eu.datex2 {
    using System;
    using System.Web.Services;
    using System.Diagnostics;
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    using System.ComponentModel;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="snapshotPullSoapBinding", Namespace="http://datex2.eu/wsdl/snapshotPull/2020")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrBaseReferencePoint))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NamedArea))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VersionedReference))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GlobalReference))]
    public partial class snapshotPullService : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        private System.Threading.SendOrPostCallback pullDataOperationCompleted;
        
        /// <remarks/>
        public snapshotPullService() {
            this.Url = "http://localhost:8094/addiod/ws_v34/snapshotPull";
        }
        
        /// <remarks/>
        public event pullDataCompletedEventHandler pullDataCompleted;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://datex2.eu/wsdl/snapshotPull/2020/pullData", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
        [return: System.Xml.Serialization.XmlElementAttribute("messageContainer", Namespace="http://datex2.eu/schema/3/messageContainer")]
        public MessageContainer pullData() {
            object[] results = this.Invoke("pullData", new object[0]);
            return ((MessageContainer)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginpullData(System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("pullData", new object[0], callback, asyncState);
        }
        
        /// <remarks/>
        public MessageContainer EndpullData(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((MessageContainer)(results[0]));
        }
        
        /// <remarks/>
        public void pullDataAsync() {
            this.pullDataAsync(null);
        }
        
        /// <remarks/>
        public void pullDataAsync(object userState) {
            if ((this.pullDataOperationCompleted == null)) {
                this.pullDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnpullDataOperationCompleted);
            }
            this.InvokeAsync("pullData", new object[0], this.pullDataOperationCompleted, userState);
        }
        
        private void OnpullDataOperationCompleted(object arg) {
            if ((this.pullDataCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.pullDataCompleted(this, new pullDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/messageContainer")]
    public partial class MessageContainer {
        
        private PayloadPublication[] payloadField;
        
        private ExchangeInformation exchangeInformationField;
        
        private _ExtensionType _messageContainerExtensionField;
        
        private string modelBaseVersionField;
        
        private string extensionNameField;
        
        private string extensionVersionField;
        
        private string profileNameField;
        
        private string profileVersionField;
        
        public MessageContainer() {
            this.modelBaseVersionField = "3";
            this.extensionNameField = "Exchange 2018";
            this.extensionVersionField = "1";
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("payload")]
        public PayloadPublication[] payload {
            get {
                return this.payloadField;
            }
            set {
                this.payloadField = value;
            }
        }
        
        /// <remarks/>
        public ExchangeInformation exchangeInformation {
            get {
                return this.exchangeInformationField;
            }
            set {
                this.exchangeInformationField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _messageContainerExtension {
            get {
                return this._messageContainerExtensionField;
            }
            set {
                this._messageContainerExtensionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string modelBaseVersion {
            get {
                return this.modelBaseVersionField;
            }
            set {
                this.modelBaseVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute("Exchange 2018")]
        public string extensionName {
            get {
                return this.extensionNameField;
            }
            set {
                this.extensionNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute("1")]
        public string extensionVersion {
            get {
                return this.extensionVersionField;
            }
            set {
                this.extensionVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string profileName {
            get {
                return this.profileNameField;
            }
            set {
                this.profileNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string profileVersion {
            get {
                return this.profileVersionField;
            }
            set {
                this.profileVersionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SituationPublication))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public abstract partial class PayloadPublication {
        
        private MultilingualString feedDescriptionField;
        
        private string feedTypeField;
        
        private System.DateTime publicationTimeField;
        
        private InternationalIdentifier publicationCreatorField;
        
        private _ExtensionType _payloadPublicationExtensionField;
        
        private string langField;
        
        private string modelBaseVersionField;
        
        private string extensionNameField;
        
        private string extensionVersionField;
        
        private string profileNameField;
        
        private string profileVersionField;
        
        public PayloadPublication() {
            this.modelBaseVersionField = "3";
        }
        
        /// <remarks/>
        public MultilingualString feedDescription {
            get {
                return this.feedDescriptionField;
            }
            set {
                this.feedDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public string feedType {
            get {
                return this.feedTypeField;
            }
            set {
                this.feedTypeField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime publicationTime {
            get {
                return this.publicationTimeField;
            }
            set {
                this.publicationTimeField = value;
            }
        }
        
        /// <remarks/>
        public InternationalIdentifier publicationCreator {
            get {
                return this.publicationCreatorField;
            }
            set {
                this.publicationCreatorField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _payloadPublicationExtension {
            get {
                return this._payloadPublicationExtensionField;
            }
            set {
                this._payloadPublicationExtensionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
        public string lang {
            get {
                return this.langField;
            }
            set {
                this.langField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string modelBaseVersion {
            get {
                return this.modelBaseVersionField;
            }
            set {
                this.modelBaseVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string extensionName {
            get {
                return this.extensionNameField;
            }
            set {
                this.extensionNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string extensionVersion {
            get {
                return this.extensionVersionField;
            }
            set {
                this.extensionVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string profileName {
            get {
                return this.profileNameField;
            }
            set {
                this.profileNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string profileVersion {
            get {
                return this.profileVersionField;
            }
            set {
                this.profileVersionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class MultilingualString {
        
        private MultilingualStringValue[] valuesField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("value", IsNullable=false)]
        public MultilingualStringValue[] values {
            get {
                return this.valuesField;
            }
            set {
                this.valuesField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class MultilingualStringValue {
        
        private string langField;
        
        private string valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
        public string lang {
            get {
                return this.langField;
            }
            set {
                this.langField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class _InvalidityReasonEnum {
        
        private string _extendedValueField;
        
        private InvalidityReasonEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public InvalidityReasonEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public enum InvalidityReasonEnum {
        
        /// <remarks/>
        invalidExchangeContext,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        invalidClient,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class _ExchangeReturnEnum {
        
        private string _extendedValueField;
        
        private ExchangeReturnEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ExchangeReturnEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public enum ExchangeReturnEnum {
        
        /// <remarks/>
        ack,
        
        /// <remarks/>
        fail,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class ReturnInformation {
        
        private _ExchangeReturnEnum returnStatusField;
        
        private _InvalidityReasonEnum[] codedInvalidityReasonField;
        
        private _ExtensionType _returnInformationExtensionField;
        
        /// <remarks/>
        public _ExchangeReturnEnum returnStatus {
            get {
                return this.returnStatusField;
            }
            set {
                this.returnStatusField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("codedInvalidityReason")]
        public _InvalidityReasonEnum[] codedInvalidityReason {
            get {
                return this.codedInvalidityReasonField;
            }
            set {
                this.codedInvalidityReasonField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _returnInformationExtension {
            get {
                return this._returnInformationExtensionField;
            }
            set {
                this._returnInformationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _ExtensionType {
        
        private System.Xml.XmlElement[] anyField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAnyElementAttribute()]
        public System.Xml.XmlElement[] Any {
            get {
                return this.anyField;
            }
            set {
                this.anyField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class _ExchangeStatusEnum {
        
        private string _extendedValueField;
        
        private ExchangeStatusEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ExchangeStatusEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public enum ExchangeStatusEnum {
        
        /// <remarks/>
        undefined,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class DynamicInformation {
        
        private _ExchangeStatusEnum exchangeStatusField;
        
        private MultilingualString exchangeStatusDescriptionField;
        
        private System.DateTime messageGenerationTimestampField;
        
        private ReturnInformation returnInformationField;
        
        private _ExtensionType _dynamicInformationExtensionField;
        
        /// <remarks/>
        public _ExchangeStatusEnum exchangeStatus {
            get {
                return this.exchangeStatusField;
            }
            set {
                this.exchangeStatusField = value;
            }
        }
        
        /// <remarks/>
        public MultilingualString exchangeStatusDescription {
            get {
                return this.exchangeStatusDescriptionField;
            }
            set {
                this.exchangeStatusDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime messageGenerationTimestamp {
            get {
                return this.messageGenerationTimestampField;
            }
            set {
                this.messageGenerationTimestampField = value;
            }
        }
        
        /// <remarks/>
        public ReturnInformation returnInformation {
            get {
                return this.returnInformationField;
            }
            set {
                this.returnInformationField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _dynamicInformationExtension {
            get {
                return this._dynamicInformationExtensionField;
            }
            set {
                this._dynamicInformationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class Agent {
        
        private string addressField;
        
        private string nameField;
        
        private string referenceIDField;
        
        private string serviceURLField;
        
        private InternationalIdentifier internationalIdentifierField;
        
        private _ExtensionType _agentExtensionField;
        
        /// <remarks/>
        public string address {
            get {
                return this.addressField;
            }
            set {
                this.addressField = value;
            }
        }
        
        /// <remarks/>
        public string name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
            }
        }
        
        /// <remarks/>
        public string referenceID {
            get {
                return this.referenceIDField;
            }
            set {
                this.referenceIDField = value;
            }
        }
        
        /// <remarks/>
        public string serviceURL {
            get {
                return this.serviceURLField;
            }
            set {
                this.serviceURLField = value;
            }
        }
        
        /// <remarks/>
        public InternationalIdentifier internationalIdentifier {
            get {
                return this.internationalIdentifierField;
            }
            set {
                this.internationalIdentifierField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _agentExtension {
            get {
                return this._agentExtensionField;
            }
            set {
                this._agentExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class InternationalIdentifier {
        
        private string countryField;
        
        private string nationalIdentifierField;
        
        private _ExtensionType _internationalIdentifierExtensionField;
        
        /// <remarks/>
        public string country {
            get {
                return this.countryField;
            }
            set {
                this.countryField = value;
            }
        }
        
        /// <remarks/>
        public string nationalIdentifier {
            get {
                return this.nationalIdentifierField;
            }
            set {
                this.nationalIdentifierField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _internationalIdentifierExtension {
            get {
                return this._internationalIdentifierExtensionField;
            }
            set {
                this._internationalIdentifierExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class _UpdateMethodEnum {
        
        private string _extendedValueField;
        
        private UpdateMethodEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public UpdateMethodEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public enum UpdateMethodEnum {
        
        /// <remarks/>
        snapshot,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class _ProtocolTypeEnum {
        
        private string _extendedValueField;
        
        private ProtocolTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ProtocolTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public enum ProtocolTypeEnum {
        
        /// <remarks/>
        snapshotPull,
        
        /// <remarks/>
        simplePush,
        
        /// <remarks/>
        snapshotPush,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class ExchangeContext {
        
        private _ProtocolTypeEnum codedExchangeProtocolField;
        
        private string exchangeSpecificationVersionField;
        
        private _UpdateMethodEnum updateMethodField;
        
        private Agent supplierOrCisRequesterField;
        
        private _ExtensionType _exchangeContextExtensionField;
        
        /// <remarks/>
        public _ProtocolTypeEnum codedExchangeProtocol {
            get {
                return this.codedExchangeProtocolField;
            }
            set {
                this.codedExchangeProtocolField = value;
            }
        }
        
        /// <remarks/>
        public string exchangeSpecificationVersion {
            get {
                return this.exchangeSpecificationVersionField;
            }
            set {
                this.exchangeSpecificationVersionField = value;
            }
        }
        
        /// <remarks/>
        public _UpdateMethodEnum updateMethod {
            get {
                return this.updateMethodField;
            }
            set {
                this.updateMethodField = value;
            }
        }
        
        /// <remarks/>
        public Agent supplierOrCisRequester {
            get {
                return this.supplierOrCisRequesterField;
            }
            set {
                this.supplierOrCisRequesterField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _exchangeContextExtension {
            get {
                return this._exchangeContextExtensionField;
            }
            set {
                this._exchangeContextExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/exchangeInformation")]
    public partial class ExchangeInformation {
        
        private ExchangeContext exchangeContextField;
        
        private DynamicInformation dynamicInformationField;
        
        private _ExtensionType _exchangeInformationExtensionField;
        
        private string modelBaseVersionField;
        
        private string extensionNameField;
        
        private string extensionVersionField;
        
        private string profileNameField;
        
        private string profileVersionField;
        
        public ExchangeInformation() {
            this.modelBaseVersionField = "3";
            this.extensionNameField = "Exchange 2018";
            this.extensionVersionField = "1";
        }
        
        /// <remarks/>
        public ExchangeContext exchangeContext {
            get {
                return this.exchangeContextField;
            }
            set {
                this.exchangeContextField = value;
            }
        }
        
        /// <remarks/>
        public DynamicInformation dynamicInformation {
            get {
                return this.dynamicInformationField;
            }
            set {
                this.dynamicInformationField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _exchangeInformationExtension {
            get {
                return this._exchangeInformationExtensionField;
            }
            set {
                this._exchangeInformationExtensionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string modelBaseVersion {
            get {
                return this.modelBaseVersionField;
            }
            set {
                this.modelBaseVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute("Exchange 2018")]
        public string extensionName {
            get {
                return this.extensionNameField;
            }
            set {
                this.extensionNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute("1")]
        public string extensionVersion {
            get {
                return this.extensionVersionField;
            }
            set {
                this.extensionVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string profileName {
            get {
                return this.profileNameField;
            }
            set {
                this.profileNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string profileVersion {
            get {
                return this.profileVersionField;
            }
            set {
                this.profileVersionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class Vehicle {
        
        private VehicleCharacteristics vehicleCharacteristicsField;
        
        private _ExtensionType _vehicleExtensionField;
        
        /// <remarks/>
        public VehicleCharacteristics vehicleCharacteristics {
            get {
                return this.vehicleCharacteristicsField;
            }
            set {
                this.vehicleCharacteristicsField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _vehicleExtension {
            get {
                return this._vehicleExtensionField;
            }
            set {
                this._vehicleExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class VehicleCharacteristics {
        
        private _FuelTypeEnum[] fuelTypeField;
        
        private _LoadTypeEnum loadTypeField;
        
        private _VehicleEquipmentEnum vehicleEquipmentField;
        
        private _VehicleTypeEnum[] vehicleTypeField;
        
        private _VehicleUsageEnum vehicleUsageField;
        
        private string yearOfFirstRegistrationField;
        
        private GrossWeightCharacteristic[] grossWeightCharacteristicField;
        
        private HeightCharacteristic[] heightCharacteristicField;
        
        private LengthCharacteristic[] lengthCharacteristicField;
        
        private WidthCharacteristic[] widthCharacteristicField;
        
        private HeaviestAxleWeightCharacteristic[] heaviestAxleWeightCharacteristicField;
        
        private NumberOfAxlesCharacteristic[] numberOfAxlesCharacteristicField;
        
        private Emissions emissionsField;
        
        private _ExtensionType _vehicleCharacteristicsExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("fuelType")]
        public _FuelTypeEnum[] fuelType {
            get {
                return this.fuelTypeField;
            }
            set {
                this.fuelTypeField = value;
            }
        }
        
        /// <remarks/>
        public _LoadTypeEnum loadType {
            get {
                return this.loadTypeField;
            }
            set {
                this.loadTypeField = value;
            }
        }
        
        /// <remarks/>
        public _VehicleEquipmentEnum vehicleEquipment {
            get {
                return this.vehicleEquipmentField;
            }
            set {
                this.vehicleEquipmentField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("vehicleType")]
        public _VehicleTypeEnum[] vehicleType {
            get {
                return this.vehicleTypeField;
            }
            set {
                this.vehicleTypeField = value;
            }
        }
        
        /// <remarks/>
        public _VehicleUsageEnum vehicleUsage {
            get {
                return this.vehicleUsageField;
            }
            set {
                this.vehicleUsageField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string yearOfFirstRegistration {
            get {
                return this.yearOfFirstRegistrationField;
            }
            set {
                this.yearOfFirstRegistrationField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("grossWeightCharacteristic")]
        public GrossWeightCharacteristic[] grossWeightCharacteristic {
            get {
                return this.grossWeightCharacteristicField;
            }
            set {
                this.grossWeightCharacteristicField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("heightCharacteristic")]
        public HeightCharacteristic[] heightCharacteristic {
            get {
                return this.heightCharacteristicField;
            }
            set {
                this.heightCharacteristicField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("lengthCharacteristic")]
        public LengthCharacteristic[] lengthCharacteristic {
            get {
                return this.lengthCharacteristicField;
            }
            set {
                this.lengthCharacteristicField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("widthCharacteristic")]
        public WidthCharacteristic[] widthCharacteristic {
            get {
                return this.widthCharacteristicField;
            }
            set {
                this.widthCharacteristicField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("heaviestAxleWeightCharacteristic")]
        public HeaviestAxleWeightCharacteristic[] heaviestAxleWeightCharacteristic {
            get {
                return this.heaviestAxleWeightCharacteristicField;
            }
            set {
                this.heaviestAxleWeightCharacteristicField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("numberOfAxlesCharacteristic")]
        public NumberOfAxlesCharacteristic[] numberOfAxlesCharacteristic {
            get {
                return this.numberOfAxlesCharacteristicField;
            }
            set {
                this.numberOfAxlesCharacteristicField = value;
            }
        }
        
        /// <remarks/>
        public Emissions emissions {
            get {
                return this.emissionsField;
            }
            set {
                this.emissionsField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _vehicleCharacteristicsExtension {
            get {
                return this._vehicleCharacteristicsExtensionField;
            }
            set {
                this._vehicleCharacteristicsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _FuelTypeEnum {
        
        private string _extendedValueField;
        
        private FuelTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public FuelTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum FuelTypeEnum {
        
        /// <remarks/>
        all,
        
        /// <remarks/>
        battery,
        
        /// <remarks/>
        biodiesel,
        
        /// <remarks/>
        diesel,
        
        /// <remarks/>
        dieselBatteryHybrid,
        
        /// <remarks/>
        ethanol,
        
        /// <remarks/>
        hydrogen,
        
        /// <remarks/>
        liquidGas,
        
        /// <remarks/>
        lpg,
        
        /// <remarks/>
        methane,
        
        /// <remarks/>
        petrol,
        
        /// <remarks/>
        petrol95Octane,
        
        /// <remarks/>
        petrol98Octane,
        
        /// <remarks/>
        petrolBatteryHybrid,
        
        /// <remarks/>
        petrolLeaded,
        
        /// <remarks/>
        petrolUnleaded,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _LoadTypeEnum {
        
        private string _extendedValueField;
        
        private LoadTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public LoadTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum LoadTypeEnum {
        
        /// <remarks/>
        abnormalLoad,
        
        /// <remarks/>
        ammunition,
        
        /// <remarks/>
        chemicals,
        
        /// <remarks/>
        combustibleMaterials,
        
        /// <remarks/>
        corrosiveMaterials,
        
        /// <remarks/>
        debris,
        
        /// <remarks/>
        empty,
        
        /// <remarks/>
        explosiveMaterials,
        
        /// <remarks/>
        extraHighLoad,
        
        /// <remarks/>
        extraLongLoad,
        
        /// <remarks/>
        extraWideLoad,
        
        /// <remarks/>
        fuel,
        
        /// <remarks/>
        glass,
        
        /// <remarks/>
        goods,
        
        /// <remarks/>
        hazardousMaterials,
        
        /// <remarks/>
        liquid,
        
        /// <remarks/>
        livestock,
        
        /// <remarks/>
        materials,
        
        /// <remarks/>
        materialsDangerousForPeople,
        
        /// <remarks/>
        materialsDangerousForTheEnvironment,
        
        /// <remarks/>
        materialsDangerousForWater,
        
        /// <remarks/>
        oil,
        
        /// <remarks/>
        ordinary,
        
        /// <remarks/>
        perishableProducts,
        
        /// <remarks/>
        petrol,
        
        /// <remarks/>
        pharmaceuticalMaterials,
        
        /// <remarks/>
        radioactiveMaterials,
        
        /// <remarks/>
        refrigeratedGoods,
        
        /// <remarks/>
        refuse,
        
        /// <remarks/>
        toxicMaterials,
        
        /// <remarks/>
        vehicles,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _VehicleEquipmentEnum {
        
        private string _extendedValueField;
        
        private VehicleEquipmentEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public VehicleEquipmentEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum VehicleEquipmentEnum {
        
        /// <remarks/>
        notUsingSnowChains,
        
        /// <remarks/>
        notUsingSnowChainsOrTyres,
        
        /// <remarks/>
        snowChainsInUse,
        
        /// <remarks/>
        snowTyresInUse,
        
        /// <remarks/>
        snowChainsOrTyresInUse,
        
        /// <remarks/>
        withoutSnowTyresOrChainsOnBoard,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _VehicleTypeEnum {
        
        private string _extendedValueField;
        
        private VehicleTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public VehicleTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum VehicleTypeEnum {
        
        /// <remarks/>
        agriculturalVehicle,
        
        /// <remarks/>
        anyVehicle,
        
        /// <remarks/>
        articulatedBus,
        
        /// <remarks/>
        articulatedTrolleyBus,
        
        /// <remarks/>
        articulatedVehicle,
        
        /// <remarks/>
        bicycle,
        
        /// <remarks/>
        bus,
        
        /// <remarks/>
        car,
        
        /// <remarks/>
        caravan,
        
        /// <remarks/>
        carOrLightVehicle,
        
        /// <remarks/>
        carWithCaravan,
        
        /// <remarks/>
        carWithTrailer,
        
        /// <remarks/>
        constructionOrMaintenanceVehicle,
        
        /// <remarks/>
        fourWheelDrive,
        
        /// <remarks/>
        heavyGoodsVehicle,
        
        /// <remarks/>
        heavyGoodsVehicleWithTrailer,
        
        /// <remarks/>
        heavyDutyTransporter,
        
        /// <remarks/>
        heavyVehicle,
        
        /// <remarks/>
        highSidedVehicle,
        
        /// <remarks/>
        lightCommercialVehicle,
        
        /// <remarks/>
        largeCar,
        
        /// <remarks/>
        largeGoodsVehicle,
        
        /// <remarks/>
        lightCommercialVehicleWithTrailer,
        
        /// <remarks/>
        longHeavyLorry,
        
        /// <remarks/>
        lorry,
        
        /// <remarks/>
        metro,
        
        /// <remarks/>
        minibus,
        
        /// <remarks/>
        moped,
        
        /// <remarks/>
        motorcycle,
        
        /// <remarks/>
        motorcycleWithSideCar,
        
        /// <remarks/>
        motorhome,
        
        /// <remarks/>
        motorscooter,
        
        /// <remarks/>
        passengerCar,
        
        /// <remarks/>
        smallCar,
        
        /// <remarks/>
        tanker,
        
        /// <remarks/>
        threeWheeledVehicle,
        
        /// <remarks/>
        trailer,
        
        /// <remarks/>
        tram,
        
        /// <remarks/>
        trolleyBus,
        
        /// <remarks/>
        twoWheeledVehicle,
        
        /// <remarks/>
        van,
        
        /// <remarks/>
        vehicleWithCaravan,
        
        /// <remarks/>
        vehicleWithCatalyticConverter,
        
        /// <remarks/>
        vehicleWithoutCatalyticConverter,
        
        /// <remarks/>
        vehicleWithTrailer,
        
        /// <remarks/>
        withEvenNumberedRegistrationPlates,
        
        /// <remarks/>
        withOddNumberedRegistrationPlates,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _VehicleUsageEnum {
        
        private string _extendedValueField;
        
        private VehicleUsageEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public VehicleUsageEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum VehicleUsageEnum {
        
        /// <remarks/>
        agricultural,
        
        /// <remarks/>
        carSharing,
        
        /// <remarks/>
        cityLogistics,
        
        /// <remarks/>
        commercial,
        
        /// <remarks/>
        emergencyServices,
        
        /// <remarks/>
        military,
        
        /// <remarks/>
        nonCommercial,
        
        /// <remarks/>
        patrol,
        
        /// <remarks/>
        recoveryServices,
        
        /// <remarks/>
        roadMaintenanceOrConstruction,
        
        /// <remarks/>
        roadOperator,
        
        /// <remarks/>
        taxi,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class GrossWeightCharacteristic {
        
        private _ComparisonOperatorEnum comparisonOperatorField;
        
        private float grossVehicleWeightField;
        
        private _WeightTypeEnum typeOfWeightField;
        
        private _ExtensionType _grossWeightCharacteristicExtensionField;
        
        /// <remarks/>
        public _ComparisonOperatorEnum comparisonOperator {
            get {
                return this.comparisonOperatorField;
            }
            set {
                this.comparisonOperatorField = value;
            }
        }
        
        /// <remarks/>
        public float grossVehicleWeight {
            get {
                return this.grossVehicleWeightField;
            }
            set {
                this.grossVehicleWeightField = value;
            }
        }
        
        /// <remarks/>
        public _WeightTypeEnum typeOfWeight {
            get {
                return this.typeOfWeightField;
            }
            set {
                this.typeOfWeightField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _grossWeightCharacteristicExtension {
            get {
                return this._grossWeightCharacteristicExtensionField;
            }
            set {
                this._grossWeightCharacteristicExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _ComparisonOperatorEnum {
        
        private string _extendedValueField;
        
        private ComparisonOperatorEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ComparisonOperatorEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum ComparisonOperatorEnum {
        
        /// <remarks/>
        equalTo,
        
        /// <remarks/>
        greaterThan,
        
        /// <remarks/>
        greaterThanOrEqualTo,
        
        /// <remarks/>
        lessThan,
        
        /// <remarks/>
        lessThanOrEqualTo,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _WeightTypeEnum {
        
        private string _extendedValueField;
        
        private WeightTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public WeightTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum WeightTypeEnum {
        
        /// <remarks/>
        actual,
        
        /// <remarks/>
        maximumPermitted,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class HeightCharacteristic {
        
        private _ComparisonOperatorEnum comparisonOperatorField;
        
        private float vehicleHeightField;
        
        private _ExtensionType _heightCharacteristicExtensionField;
        
        /// <remarks/>
        public _ComparisonOperatorEnum comparisonOperator {
            get {
                return this.comparisonOperatorField;
            }
            set {
                this.comparisonOperatorField = value;
            }
        }
        
        /// <remarks/>
        public float vehicleHeight {
            get {
                return this.vehicleHeightField;
            }
            set {
                this.vehicleHeightField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _heightCharacteristicExtension {
            get {
                return this._heightCharacteristicExtensionField;
            }
            set {
                this._heightCharacteristicExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class LengthCharacteristic {
        
        private _ComparisonOperatorEnum comparisonOperatorField;
        
        private float vehicleLengthField;
        
        private _ExtensionType _lengthCharacteristicExtensionField;
        
        /// <remarks/>
        public _ComparisonOperatorEnum comparisonOperator {
            get {
                return this.comparisonOperatorField;
            }
            set {
                this.comparisonOperatorField = value;
            }
        }
        
        /// <remarks/>
        public float vehicleLength {
            get {
                return this.vehicleLengthField;
            }
            set {
                this.vehicleLengthField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _lengthCharacteristicExtension {
            get {
                return this._lengthCharacteristicExtensionField;
            }
            set {
                this._lengthCharacteristicExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class WidthCharacteristic {
        
        private _ComparisonOperatorEnum comparisonOperatorField;
        
        private float vehicleWidthField;
        
        private _ExtensionType _widthCharacteristicExtensionField;
        
        /// <remarks/>
        public _ComparisonOperatorEnum comparisonOperator {
            get {
                return this.comparisonOperatorField;
            }
            set {
                this.comparisonOperatorField = value;
            }
        }
        
        /// <remarks/>
        public float vehicleWidth {
            get {
                return this.vehicleWidthField;
            }
            set {
                this.vehicleWidthField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _widthCharacteristicExtension {
            get {
                return this._widthCharacteristicExtensionField;
            }
            set {
                this._widthCharacteristicExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class HeaviestAxleWeightCharacteristic {
        
        private _ComparisonOperatorEnum comparisonOperatorField;
        
        private float heaviestAxleWeightField;
        
        private _ExtensionType _heaviestAxleWeightCharacteristicExtensionField;
        
        /// <remarks/>
        public _ComparisonOperatorEnum comparisonOperator {
            get {
                return this.comparisonOperatorField;
            }
            set {
                this.comparisonOperatorField = value;
            }
        }
        
        /// <remarks/>
        public float heaviestAxleWeight {
            get {
                return this.heaviestAxleWeightField;
            }
            set {
                this.heaviestAxleWeightField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _heaviestAxleWeightCharacteristicExtension {
            get {
                return this._heaviestAxleWeightCharacteristicExtensionField;
            }
            set {
                this._heaviestAxleWeightCharacteristicExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class NumberOfAxlesCharacteristic {
        
        private _ComparisonOperatorEnum comparisonOperatorField;
        
        private string numberOfAxlesField;
        
        private _ExtensionType _numberOfAxlesCharacteristicExtensionField;
        
        /// <remarks/>
        public _ComparisonOperatorEnum comparisonOperator {
            get {
                return this.comparisonOperatorField;
            }
            set {
                this.comparisonOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string numberOfAxles {
            get {
                return this.numberOfAxlesField;
            }
            set {
                this.numberOfAxlesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _numberOfAxlesCharacteristicExtension {
            get {
                return this._numberOfAxlesCharacteristicExtensionField;
            }
            set {
                this._numberOfAxlesCharacteristicExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class Emissions {
        
        private _EmissionClassificationEuroEnum emissionClassificationEuroField;
        
        private string[] emissionClassificationOtherField;
        
        private _LowEmissionLevelEnum emissionLevelField;
        
        private _ExtensionType _emissionsExtensionField;
        
        /// <remarks/>
        public _EmissionClassificationEuroEnum emissionClassificationEuro {
            get {
                return this.emissionClassificationEuroField;
            }
            set {
                this.emissionClassificationEuroField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("emissionClassificationOther")]
        public string[] emissionClassificationOther {
            get {
                return this.emissionClassificationOtherField;
            }
            set {
                this.emissionClassificationOtherField = value;
            }
        }
        
        /// <remarks/>
        public _LowEmissionLevelEnum emissionLevel {
            get {
                return this.emissionLevelField;
            }
            set {
                this.emissionLevelField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _emissionsExtension {
            get {
                return this._emissionsExtensionField;
            }
            set {
                this._emissionsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _EmissionClassificationEuroEnum {
        
        private _EmissionClassificationEuroEnumExtensionType _extendedValueField;
        
        private bool _extendedValueFieldSpecified;
        
        private EmissionClassificationEuroEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public _EmissionClassificationEuroEnumExtensionType _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool _extendedValueSpecified {
            get {
                return this._extendedValueFieldSpecified;
            }
            set {
                this._extendedValueFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public EmissionClassificationEuroEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum _EmissionClassificationEuroEnumExtensionType {
        
        /// <remarks/>
        euroUnknown,
        
        /// <remarks/>
        euroI,
        
        /// <remarks/>
        euroII,
        
        /// <remarks/>
        euroIII,
        
        /// <remarks/>
        euro0,
        
        /// <remarks/>
        euro4,
        
        /// <remarks/>
        euro6d,
        
        /// <remarks/>
        euro6dTemp,
        
        /// <remarks/>
        euroIV,
        
        /// <remarks/>
        euro1,
        
        /// <remarks/>
        euro2,
        
        /// <remarks/>
        euro3,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum EmissionClassificationEuroEnum {
        
        /// <remarks/>
        euro5,
        
        /// <remarks/>
        euro5a,
        
        /// <remarks/>
        euro5b,
        
        /// <remarks/>
        euro6,
        
        /// <remarks/>
        euro6a,
        
        /// <remarks/>
        euro6b,
        
        /// <remarks/>
        euro6c,
        
        /// <remarks/>
        euroV,
        
        /// <remarks/>
        euroVI,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _LowEmissionLevelEnum {
        
        private string _extendedValueField;
        
        private LowEmissionLevelEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public LowEmissionLevelEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum LowEmissionLevelEnum {
        
        /// <remarks/>
        lowLevelEmission,
        
        /// <remarks/>
        freeOfEmission,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _CollisionTypeEnum {
        
        private string _extendedValueField;
        
        private CollisionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public CollisionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum CollisionTypeEnum {
        
        /// <remarks/>
        collisionWithAnimal,
        
        /// <remarks/>
        collisionWithObstacle,
        
        /// <remarks/>
        collisionWithPerson,
        
        /// <remarks/>
        headOnCollision,
        
        /// <remarks/>
        headOnOrSideCollision,
        
        /// <remarks/>
        multipleVehicleCollision,
        
        /// <remarks/>
        rearCollision,
        
        /// <remarks/>
        sideCollision,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _TrafficConstrictionTypeEnum {
        
        private string _extendedValueField;
        
        private TrafficConstrictionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public TrafficConstrictionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum TrafficConstrictionTypeEnum {
        
        /// <remarks/>
        carriagewayBlocked,
        
        /// <remarks/>
        carriagewayPartiallyObstructed,
        
        /// <remarks/>
        lanesBlocked,
        
        /// <remarks/>
        lanesPartiallyObstructed,
        
        /// <remarks/>
        roadBlocked,
        
        /// <remarks/>
        roadPartiallyObstructed,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _TransitServiceTypeEnum {
        
        private string _extendedValueField;
        
        private TransitServiceTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public TransitServiceTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum TransitServiceTypeEnum {
        
        /// <remarks/>
        air,
        
        /// <remarks/>
        bus,
        
        /// <remarks/>
        ferry,
        
        /// <remarks/>
        hydrofoil,
        
        /// <remarks/>
        rail,
        
        /// <remarks/>
        tram,
        
        /// <remarks/>
        undergroundMetro,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _MaintenanceVehicleActionsEnum {
        
        private string _extendedValueField;
        
        private MaintenanceVehicleActionsEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public MaintenanceVehicleActionsEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum MaintenanceVehicleActionsEnum {
        
        /// <remarks/>
        maintenanceAction,
        
        /// <remarks/>
        maintenanceVehiclesMergingIntoTrafficFlow,
        
        /// <remarks/>
        slowMoving,
        
        /// <remarks/>
        stoppingToServiceEquipments,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class MaintenanceVehicles {
        
        private _MaintenanceVehicleActionsEnum[] maintenanceVehicleActionsField;
        
        private _ExtensionType _maintenanceVehiclesExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("maintenanceVehicleActions")]
        public _MaintenanceVehicleActionsEnum[] maintenanceVehicleActions {
            get {
                return this.maintenanceVehicleActionsField;
            }
            set {
                this.maintenanceVehicleActionsField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _maintenanceVehiclesExtension {
            get {
                return this._maintenanceVehiclesExtensionField;
            }
            set {
                this._maintenanceVehiclesExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _ComplianceOptionEnum {
        
        private string _extendedValueField;
        
        private ComplianceOptionEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ComplianceOptionEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum ComplianceOptionEnum {
        
        /// <remarks/>
        advisory,
        
        /// <remarks/>
        mandatory,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _OpenlrOrientationEnum {
        
        private string _extendedValueField;
        
        private OpenlrOrientationEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public OpenlrOrientationEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum OpenlrOrientationEnum {
        
        /// <remarks/>
        noOrientationOrUnknown,
        
        /// <remarks/>
        withLineDirection,
        
        /// <remarks/>
        againstLineDirection,
        
        /// <remarks/>
        both,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _OpenlrSideOfRoadEnum {
        
        private string _extendedValueField;
        
        private OpenlrSideOfRoadEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public OpenlrSideOfRoadEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum OpenlrSideOfRoadEnum {
        
        /// <remarks/>
        onRoadOrUnknown,
        
        /// <remarks/>
        right,
        
        /// <remarks/>
        left,
        
        /// <remarks/>
        both,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrGeoCoordinate))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrBasePointLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrPoiWithAccessPoint))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrPointAlongLine))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class OpenlrPointLocationReference {
        
        private _ExtensionType _openlrPointLocationReferenceExtensionField;
        
        /// <remarks/>
        public _ExtensionType _openlrPointLocationReferenceExtension {
            get {
                return this._openlrPointLocationReferenceExtensionField;
            }
            set {
                this._openlrPointLocationReferenceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrGeoCoordinate : OpenlrPointLocationReference {
        
        private PointCoordinates openlrCoordinatesField;
        
        private _ExtensionType _openlrGeoCoordinateExtensionField;
        
        /// <remarks/>
        public PointCoordinates openlrCoordinates {
            get {
                return this.openlrCoordinatesField;
            }
            set {
                this.openlrCoordinatesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrGeoCoordinateExtension {
            get {
                return this._openlrGeoCoordinateExtensionField;
            }
            set {
                this._openlrGeoCoordinateExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PointCoordinates {
        
        private float latitudeField;
        
        private float longitudeField;
        
        private HeightCoordinate[] heightCoordinateField;
        
        private PositionConfidenceEllipse positionConfidenceEllipseField;
        
        private PositionAccuracy horizontalPositionAccuracyField;
        
        private _ExtensionType _pointCoordinatesExtensionField;
        
        /// <remarks/>
        public float latitude {
            get {
                return this.latitudeField;
            }
            set {
                this.latitudeField = value;
            }
        }
        
        /// <remarks/>
        public float longitude {
            get {
                return this.longitudeField;
            }
            set {
                this.longitudeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("heightCoordinate")]
        public HeightCoordinate[] heightCoordinate {
            get {
                return this.heightCoordinateField;
            }
            set {
                this.heightCoordinateField = value;
            }
        }
        
        /// <remarks/>
        public PositionConfidenceEllipse positionConfidenceEllipse {
            get {
                return this.positionConfidenceEllipseField;
            }
            set {
                this.positionConfidenceEllipseField = value;
            }
        }
        
        /// <remarks/>
        public PositionAccuracy horizontalPositionAccuracy {
            get {
                return this.horizontalPositionAccuracyField;
            }
            set {
                this.horizontalPositionAccuracyField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _pointCoordinatesExtension {
            get {
                return this._pointCoordinatesExtensionField;
            }
            set {
                this._pointCoordinatesExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class HeightCoordinate {
        
        private float heightValueField;
        
        private _HeightTypeEnum heightTypeField;
        
        private AltitudeConfidence altitudeConfidenceField;
        
        private PositionAccuracy verticalPositionAccuracyField;
        
        private _ExtensionType _heightCoordinateExtensionField;
        
        /// <remarks/>
        public float heightValue {
            get {
                return this.heightValueField;
            }
            set {
                this.heightValueField = value;
            }
        }
        
        /// <remarks/>
        public _HeightTypeEnum heightType {
            get {
                return this.heightTypeField;
            }
            set {
                this.heightTypeField = value;
            }
        }
        
        /// <remarks/>
        public AltitudeConfidence altitudeConfidence {
            get {
                return this.altitudeConfidenceField;
            }
            set {
                this.altitudeConfidenceField = value;
            }
        }
        
        /// <remarks/>
        public PositionAccuracy verticalPositionAccuracy {
            get {
                return this.verticalPositionAccuracyField;
            }
            set {
                this.verticalPositionAccuracyField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _heightCoordinateExtension {
            get {
                return this._heightCoordinateExtensionField;
            }
            set {
                this._heightCoordinateExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _HeightTypeEnum {
        
        private string _extendedValueField;
        
        private HeightTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public HeightTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum HeightTypeEnum {
        
        /// <remarks/>
        ellipsoidalHeight,
        
        /// <remarks/>
        gravityRelatedHeight,
        
        /// <remarks/>
        relativeHeight,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class AltitudeConfidence {
        
        private _AltitudeAccuracyEnum altitudeAccuracyCodedValueField;
        
        private _PositionConfidenceCodedErrorEnum altitudeAccuracyCodedErrorField;
        
        private _ExtensionType _altitudeConfidenceExtensionField;
        
        /// <remarks/>
        public _AltitudeAccuracyEnum altitudeAccuracyCodedValue {
            get {
                return this.altitudeAccuracyCodedValueField;
            }
            set {
                this.altitudeAccuracyCodedValueField = value;
            }
        }
        
        /// <remarks/>
        public _PositionConfidenceCodedErrorEnum altitudeAccuracyCodedError {
            get {
                return this.altitudeAccuracyCodedErrorField;
            }
            set {
                this.altitudeAccuracyCodedErrorField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _altitudeConfidenceExtension {
            get {
                return this._altitudeConfidenceExtensionField;
            }
            set {
                this._altitudeConfidenceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _AltitudeAccuracyEnum {
        
        private string _extendedValueField;
        
        private AltitudeAccuracyEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public AltitudeAccuracyEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum AltitudeAccuracyEnum {
        
        /// <remarks/>
        equalToOrLessThan1Centimetre,
        
        /// <remarks/>
        equalToOrLessThan2Centimetres,
        
        /// <remarks/>
        equalToOrLessThan5Centimetres,
        
        /// <remarks/>
        equalToOrLessThan10Centimetres,
        
        /// <remarks/>
        equalToOrLessThan20Centimetres,
        
        /// <remarks/>
        equalToOrLessThan50Centimetres,
        
        /// <remarks/>
        equalToOrLessThan1Metre,
        
        /// <remarks/>
        equalToOrLessThan2Metres,
        
        /// <remarks/>
        equalToOrLessThan5Metres,
        
        /// <remarks/>
        equalToOrLessThan10Metres,
        
        /// <remarks/>
        equalToOrLessThan20Metres,
        
        /// <remarks/>
        equalToOrLessThan50Metres,
        
        /// <remarks/>
        equalToOrLessThan100Metres,
        
        /// <remarks/>
        equalToOrLessThan200Metres,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _PositionConfidenceCodedErrorEnum {
        
        private string _extendedValueField;
        
        private PositionConfidenceCodedErrorEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public PositionConfidenceCodedErrorEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum PositionConfidenceCodedErrorEnum {
        
        /// <remarks/>
        outOfRange,
        
        /// <remarks/>
        unavailable,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PositionAccuracy {
        
        private float accuracyPercentile50Field;
        
        private bool accuracyPercentile50FieldSpecified;
        
        private float accuracyPercentile75Field;
        
        private bool accuracyPercentile75FieldSpecified;
        
        private float accuracyPercentile95Field;
        
        private bool accuracyPercentile95FieldSpecified;
        
        private _ExtensionType _positionAccuracyExtensionField;
        
        /// <remarks/>
        public float accuracyPercentile50 {
            get {
                return this.accuracyPercentile50Field;
            }
            set {
                this.accuracyPercentile50Field = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool accuracyPercentile50Specified {
            get {
                return this.accuracyPercentile50FieldSpecified;
            }
            set {
                this.accuracyPercentile50FieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public float accuracyPercentile75 {
            get {
                return this.accuracyPercentile75Field;
            }
            set {
                this.accuracyPercentile75Field = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool accuracyPercentile75Specified {
            get {
                return this.accuracyPercentile75FieldSpecified;
            }
            set {
                this.accuracyPercentile75FieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public float accuracyPercentile95 {
            get {
                return this.accuracyPercentile95Field;
            }
            set {
                this.accuracyPercentile95Field = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool accuracyPercentile95Specified {
            get {
                return this.accuracyPercentile95FieldSpecified;
            }
            set {
                this.accuracyPercentile95FieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _positionAccuracyExtension {
            get {
                return this._positionAccuracyExtensionField;
            }
            set {
                this._positionAccuracyExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PositionConfidenceEllipse {
        
        private float semiMajorAxisLengthField;
        
        private bool semiMajorAxisLengthFieldSpecified;
        
        private _PositionConfidenceCodedErrorEnum semiMajorAxisLengthCodedErrorField;
        
        private float semiMinorAxisLengthField;
        
        private bool semiMinorAxisLengthFieldSpecified;
        
        private _PositionConfidenceCodedErrorEnum semiMinorAxisLengthCodedErrorField;
        
        private string semiMajorAxisOrientationField;
        
        private bool semiMajorAxisOrientationErrorField;
        
        private bool semiMajorAxisOrientationErrorFieldSpecified;
        
        private _ExtensionType _positionConfidenceEllipseExtensionField;
        
        /// <remarks/>
        public float semiMajorAxisLength {
            get {
                return this.semiMajorAxisLengthField;
            }
            set {
                this.semiMajorAxisLengthField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool semiMajorAxisLengthSpecified {
            get {
                return this.semiMajorAxisLengthFieldSpecified;
            }
            set {
                this.semiMajorAxisLengthFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _PositionConfidenceCodedErrorEnum semiMajorAxisLengthCodedError {
            get {
                return this.semiMajorAxisLengthCodedErrorField;
            }
            set {
                this.semiMajorAxisLengthCodedErrorField = value;
            }
        }
        
        /// <remarks/>
        public float semiMinorAxisLength {
            get {
                return this.semiMinorAxisLengthField;
            }
            set {
                this.semiMinorAxisLengthField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool semiMinorAxisLengthSpecified {
            get {
                return this.semiMinorAxisLengthFieldSpecified;
            }
            set {
                this.semiMinorAxisLengthFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _PositionConfidenceCodedErrorEnum semiMinorAxisLengthCodedError {
            get {
                return this.semiMinorAxisLengthCodedErrorField;
            }
            set {
                this.semiMinorAxisLengthCodedErrorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string semiMajorAxisOrientation {
            get {
                return this.semiMajorAxisOrientationField;
            }
            set {
                this.semiMajorAxisOrientationField = value;
            }
        }
        
        /// <remarks/>
        public bool semiMajorAxisOrientationError {
            get {
                return this.semiMajorAxisOrientationErrorField;
            }
            set {
                this.semiMajorAxisOrientationErrorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool semiMajorAxisOrientationErrorSpecified {
            get {
                return this.semiMajorAxisOrientationErrorFieldSpecified;
            }
            set {
                this.semiMajorAxisOrientationErrorFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _positionConfidenceEllipseExtension {
            get {
                return this._positionConfidenceEllipseExtensionField;
            }
            set {
                this._positionConfidenceEllipseExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrPoiWithAccessPoint))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrPointAlongLine))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class OpenlrBasePointLocation : OpenlrPointLocationReference {
        
        private _OpenlrSideOfRoadEnum openlrSideOfRoadField;
        
        private _OpenlrOrientationEnum openlrOrientationField;
        
        private OpenlrLocationReferencePoint openlrLocationReferencePointField;
        
        private OpenlrLastLocationReferencePoint openlrLastLocationReferencePointField;
        
        private OpenlrOffsets openlrOffsetsField;
        
        private _ExtensionType _openlrBasePointLocationExtensionField;
        
        /// <remarks/>
        public _OpenlrSideOfRoadEnum openlrSideOfRoad {
            get {
                return this.openlrSideOfRoadField;
            }
            set {
                this.openlrSideOfRoadField = value;
            }
        }
        
        /// <remarks/>
        public _OpenlrOrientationEnum openlrOrientation {
            get {
                return this.openlrOrientationField;
            }
            set {
                this.openlrOrientationField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrLocationReferencePoint openlrLocationReferencePoint {
            get {
                return this.openlrLocationReferencePointField;
            }
            set {
                this.openlrLocationReferencePointField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrLastLocationReferencePoint openlrLastLocationReferencePoint {
            get {
                return this.openlrLastLocationReferencePointField;
            }
            set {
                this.openlrLastLocationReferencePointField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrOffsets openlrOffsets {
            get {
                return this.openlrOffsetsField;
            }
            set {
                this.openlrOffsetsField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrBasePointLocationExtension {
            get {
                return this._openlrBasePointLocationExtensionField;
            }
            set {
                this._openlrBasePointLocationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrLocationReferencePoint : OpenlrBaseReferencePoint {
        
        private OpenlrPathAttributes openlrPathAttributesField;
        
        private _ExtensionType _openlrLocationReferencePointExtensionField;
        
        /// <remarks/>
        public OpenlrPathAttributes openlrPathAttributes {
            get {
                return this.openlrPathAttributesField;
            }
            set {
                this.openlrPathAttributesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrLocationReferencePointExtension {
            get {
                return this._openlrLocationReferencePointExtensionField;
            }
            set {
                this._openlrLocationReferencePointExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrPathAttributes {
        
        private _OpenlrFunctionalRoadClassEnum openlrLowestFrcToNextLRPointField;
        
        private string openlrDistanceToNextLRPointField;
        
        private _ExtensionType _openlrPathAttributesExtensionField;
        
        /// <remarks/>
        public _OpenlrFunctionalRoadClassEnum openlrLowestFrcToNextLRPoint {
            get {
                return this.openlrLowestFrcToNextLRPointField;
            }
            set {
                this.openlrLowestFrcToNextLRPointField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string openlrDistanceToNextLRPoint {
            get {
                return this.openlrDistanceToNextLRPointField;
            }
            set {
                this.openlrDistanceToNextLRPointField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrPathAttributesExtension {
            get {
                return this._openlrPathAttributesExtensionField;
            }
            set {
                this._openlrPathAttributesExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _OpenlrFunctionalRoadClassEnum {
        
        private string _extendedValueField;
        
        private OpenlrFunctionalRoadClassEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public OpenlrFunctionalRoadClassEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum OpenlrFunctionalRoadClassEnum {
        
        /// <remarks/>
        frc0,
        
        /// <remarks/>
        frc1,
        
        /// <remarks/>
        frc2,
        
        /// <remarks/>
        frc3,
        
        /// <remarks/>
        frc4,
        
        /// <remarks/>
        frc5,
        
        /// <remarks/>
        frc6,
        
        /// <remarks/>
        frc7,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrLocationReferencePoint))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpenlrLastLocationReferencePoint))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class OpenlrBaseReferencePoint {
        
        private PointCoordinates openlrCoordinatesField;
        
        private OpenlrLineAttributes openlrLineAttributesField;
        
        private _ExtensionType _openlrBaseReferencePointExtensionField;
        
        /// <remarks/>
        public PointCoordinates openlrCoordinates {
            get {
                return this.openlrCoordinatesField;
            }
            set {
                this.openlrCoordinatesField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrLineAttributes openlrLineAttributes {
            get {
                return this.openlrLineAttributesField;
            }
            set {
                this.openlrLineAttributesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrBaseReferencePointExtension {
            get {
                return this._openlrBaseReferencePointExtensionField;
            }
            set {
                this._openlrBaseReferencePointExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrLineAttributes {
        
        private _OpenlrFunctionalRoadClassEnum openlrFunctionalRoadClassField;
        
        private _OpenlrFormOfWayEnum openlrFormOfWayField;
        
        private string openlrBearingField;
        
        private _ExtensionType _openlrLineAttributesExtensionField;
        
        /// <remarks/>
        public _OpenlrFunctionalRoadClassEnum openlrFunctionalRoadClass {
            get {
                return this.openlrFunctionalRoadClassField;
            }
            set {
                this.openlrFunctionalRoadClassField = value;
            }
        }
        
        /// <remarks/>
        public _OpenlrFormOfWayEnum openlrFormOfWay {
            get {
                return this.openlrFormOfWayField;
            }
            set {
                this.openlrFormOfWayField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string openlrBearing {
            get {
                return this.openlrBearingField;
            }
            set {
                this.openlrBearingField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrLineAttributesExtension {
            get {
                return this._openlrLineAttributesExtensionField;
            }
            set {
                this._openlrLineAttributesExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _OpenlrFormOfWayEnum {
        
        private string _extendedValueField;
        
        private OpenlrFormOfWayEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public OpenlrFormOfWayEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum OpenlrFormOfWayEnum {
        
        /// <remarks/>
        undefined,
        
        /// <remarks/>
        motorway,
        
        /// <remarks/>
        multipleCarriageway,
        
        /// <remarks/>
        singleCarriageway,
        
        /// <remarks/>
        roundabout,
        
        /// <remarks/>
        slipRoad,
        
        /// <remarks/>
        trafficSquare,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrLastLocationReferencePoint : OpenlrBaseReferencePoint {
        
        private _ExtensionType _openlrLastLocationReferencePointExtensionField;
        
        /// <remarks/>
        public _ExtensionType _openlrLastLocationReferencePointExtension {
            get {
                return this._openlrLastLocationReferencePointExtensionField;
            }
            set {
                this._openlrLastLocationReferencePointExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrOffsets {
        
        private string openlrPositiveOffsetField;
        
        private string openlrNegativeOffsetField;
        
        private _ExtensionType _openlrOffsetsExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string openlrPositiveOffset {
            get {
                return this.openlrPositiveOffsetField;
            }
            set {
                this.openlrPositiveOffsetField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string openlrNegativeOffset {
            get {
                return this.openlrNegativeOffsetField;
            }
            set {
                this.openlrNegativeOffsetField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrOffsetsExtension {
            get {
                return this._openlrOffsetsExtensionField;
            }
            set {
                this._openlrOffsetsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrPoiWithAccessPoint : OpenlrBasePointLocation {
        
        private PointCoordinates openlrCoordinatesField;
        
        private _ExtensionType _openlrPoiWithAccessPointExtensionField;
        
        /// <remarks/>
        public PointCoordinates openlrCoordinates {
            get {
                return this.openlrCoordinatesField;
            }
            set {
                this.openlrCoordinatesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrPoiWithAccessPointExtension {
            get {
                return this._openlrPoiWithAccessPointExtensionField;
            }
            set {
                this._openlrPoiWithAccessPointExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrPointAlongLine : OpenlrBasePointLocation {
        
        private _ExtensionType _openlrPointAlongLineExtensionField;
        
        /// <remarks/>
        public _ExtensionType _openlrPointAlongLineExtension {
            get {
                return this._openlrPointAlongLineExtensionField;
            }
            set {
                this._openlrPointAlongLineExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PointAlongLinearElement {
        
        private MultilingualString administrativeAreaOfPointField;
        
        private _DirectionEnum directionAtPointField;
        
        private _LinearDirectionEnum directionRelativeAtPointField;
        
        private _HeightGradeEnum heightGradeOfPointField;
        
        private LinearElement linearElementField;
        
        private DistanceAlongLinearElement distanceAlongLinearElementField;
        
        private _ExtensionType _pointAlongLinearElementExtensionField;
        
        /// <remarks/>
        public MultilingualString administrativeAreaOfPoint {
            get {
                return this.administrativeAreaOfPointField;
            }
            set {
                this.administrativeAreaOfPointField = value;
            }
        }
        
        /// <remarks/>
        public _DirectionEnum directionAtPoint {
            get {
                return this.directionAtPointField;
            }
            set {
                this.directionAtPointField = value;
            }
        }
        
        /// <remarks/>
        public _LinearDirectionEnum directionRelativeAtPoint {
            get {
                return this.directionRelativeAtPointField;
            }
            set {
                this.directionRelativeAtPointField = value;
            }
        }
        
        /// <remarks/>
        public _HeightGradeEnum heightGradeOfPoint {
            get {
                return this.heightGradeOfPointField;
            }
            set {
                this.heightGradeOfPointField = value;
            }
        }
        
        /// <remarks/>
        public LinearElement linearElement {
            get {
                return this.linearElementField;
            }
            set {
                this.linearElementField = value;
            }
        }
        
        /// <remarks/>
        public DistanceAlongLinearElement distanceAlongLinearElement {
            get {
                return this.distanceAlongLinearElementField;
            }
            set {
                this.distanceAlongLinearElementField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _pointAlongLinearElementExtension {
            get {
                return this._pointAlongLinearElementExtensionField;
            }
            set {
                this._pointAlongLinearElementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _DirectionEnum {
        
        private string _extendedValueField;
        
        private DirectionEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public DirectionEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum DirectionEnum {
        
        /// <remarks/>
        aligned,
        
        /// <remarks/>
        allDirections,
        
        /// <remarks/>
        anticlockwise,
        
        /// <remarks/>
        bothWays,
        
        /// <remarks/>
        clockwise,
        
        /// <remarks/>
        innerRing,
        
        /// <remarks/>
        outerRing,
        
        /// <remarks/>
        eastBound,
        
        /// <remarks/>
        northBound,
        
        /// <remarks/>
        northEastBound,
        
        /// <remarks/>
        northWestBound,
        
        /// <remarks/>
        southBound,
        
        /// <remarks/>
        southEastBound,
        
        /// <remarks/>
        southWestBound,
        
        /// <remarks/>
        westBound,
        
        /// <remarks/>
        inboundTowardsTown,
        
        /// <remarks/>
        outboundFromTown,
        
        /// <remarks/>
        opposite,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _LinearDirectionEnum {
        
        private string _extendedValueField;
        
        private LinearDirectionEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public LinearDirectionEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum LinearDirectionEnum {
        
        /// <remarks/>
        both,
        
        /// <remarks/>
        opposite,
        
        /// <remarks/>
        aligned,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _HeightGradeEnum {
        
        private string _extendedValueField;
        
        private HeightGradeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public HeightGradeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum HeightGradeEnum {
        
        /// <remarks/>
        aboveGrade,
        
        /// <remarks/>
        atGrade,
        
        /// <remarks/>
        belowGrade,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearElementByPoints))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearElementByLineString))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearElementByCode))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class LinearElement {
        
        private MultilingualString roadNameField;
        
        private string roadNumberField;
        
        private string linearElementReferenceModelField;
        
        private string linearElementReferenceModelVersionField;
        
        private _LinearElementNatureEnum linearElementNatureField;
        
        private _ExtensionType _linearElementExtensionField;
        
        /// <remarks/>
        public MultilingualString roadName {
            get {
                return this.roadNameField;
            }
            set {
                this.roadNameField = value;
            }
        }
        
        /// <remarks/>
        public string roadNumber {
            get {
                return this.roadNumberField;
            }
            set {
                this.roadNumberField = value;
            }
        }
        
        /// <remarks/>
        public string linearElementReferenceModel {
            get {
                return this.linearElementReferenceModelField;
            }
            set {
                this.linearElementReferenceModelField = value;
            }
        }
        
        /// <remarks/>
        public string linearElementReferenceModelVersion {
            get {
                return this.linearElementReferenceModelVersionField;
            }
            set {
                this.linearElementReferenceModelVersionField = value;
            }
        }
        
        /// <remarks/>
        public _LinearElementNatureEnum linearElementNature {
            get {
                return this.linearElementNatureField;
            }
            set {
                this.linearElementNatureField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _linearElementExtension {
            get {
                return this._linearElementExtensionField;
            }
            set {
                this._linearElementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _LinearElementNatureEnum {
        
        private string _extendedValueField;
        
        private LinearElementNatureEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public LinearElementNatureEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum LinearElementNatureEnum {
        
        /// <remarks/>
        road,
        
        /// <remarks/>
        roadSection,
        
        /// <remarks/>
        slipRoad,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class LinearElementByPoints : LinearElement {
        
        private Referent startPointOfLinearElementField;
        
        private _IntermediatePointOnLinearElement[] intermediatePointOnLinearElementField;
        
        private Referent endPointOfLinearElementField;
        
        private _ExtensionType _linearElementByPointsExtensionField;
        
        /// <remarks/>
        public Referent startPointOfLinearElement {
            get {
                return this.startPointOfLinearElementField;
            }
            set {
                this.startPointOfLinearElementField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("intermediatePointOnLinearElement")]
        public _IntermediatePointOnLinearElement[] intermediatePointOnLinearElement {
            get {
                return this.intermediatePointOnLinearElementField;
            }
            set {
                this.intermediatePointOnLinearElementField = value;
            }
        }
        
        /// <remarks/>
        public Referent endPointOfLinearElement {
            get {
                return this.endPointOfLinearElementField;
            }
            set {
                this.endPointOfLinearElementField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _linearElementByPointsExtension {
            get {
                return this._linearElementByPointsExtensionField;
            }
            set {
                this._linearElementByPointsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class Referent {
        
        private string referentIdentifierField;
        
        private string referentNameField;
        
        private _ReferentTypeEnum referentTypeField;
        
        private MultilingualString referentDescriptionField;
        
        private PointCoordinates pointCoordinatesField;
        
        private _ExtensionType _referentExtensionField;
        
        /// <remarks/>
        public string referentIdentifier {
            get {
                return this.referentIdentifierField;
            }
            set {
                this.referentIdentifierField = value;
            }
        }
        
        /// <remarks/>
        public string referentName {
            get {
                return this.referentNameField;
            }
            set {
                this.referentNameField = value;
            }
        }
        
        /// <remarks/>
        public _ReferentTypeEnum referentType {
            get {
                return this.referentTypeField;
            }
            set {
                this.referentTypeField = value;
            }
        }
        
        /// <remarks/>
        public MultilingualString referentDescription {
            get {
                return this.referentDescriptionField;
            }
            set {
                this.referentDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public PointCoordinates pointCoordinates {
            get {
                return this.pointCoordinatesField;
            }
            set {
                this.pointCoordinatesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _referentExtension {
            get {
                return this._referentExtensionField;
            }
            set {
                this._referentExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _ReferentTypeEnum {
        
        private string _extendedValueField;
        
        private ReferentTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ReferentTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum ReferentTypeEnum {
        
        /// <remarks/>
        boundary,
        
        /// <remarks/>
        intersection,
        
        /// <remarks/>
        referenceMarker,
        
        /// <remarks/>
        landmark,
        
        /// <remarks/>
        roadNode,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _IntermediatePointOnLinearElement {
        
        private Referent referentField;
        
        private int indexField;
        
        /// <remarks/>
        public Referent referent {
            get {
                return this.referentField;
            }
            set {
                this.referentField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int index {
            get {
                return this.indexField;
            }
            set {
                this.indexField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class LinearElementByLineString : LinearElement {
        
        private GmlLineString gmlLineStringField;
        
        private _ExtensionType _linearElementByLineStringExtensionField;
        
        /// <remarks/>
        public GmlLineString gmlLineString {
            get {
                return this.gmlLineStringField;
            }
            set {
                this.gmlLineStringField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _linearElementByLineStringExtension {
            get {
                return this._linearElementByLineStringExtensionField;
            }
            set {
                this._linearElementByLineStringExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class GmlLineString {
        
        private _ExtensionType _gmlLineStringExtensionField;
        
        /// <remarks/>
        public _ExtensionType _gmlLineStringExtension {
            get {
                return this._gmlLineStringExtensionField;
            }
            set {
                this._gmlLineStringExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class LinearElementByCode : LinearElement {
        
        private string linearElementIdentifierField;
        
        private _ExtensionType _linearElementByCodeExtensionField;
        
        /// <remarks/>
        public string linearElementIdentifier {
            get {
                return this.linearElementIdentifierField;
            }
            set {
                this.linearElementIdentifierField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _linearElementByCodeExtension {
            get {
                return this._linearElementByCodeExtensionField;
            }
            set {
                this._linearElementByCodeExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PercentageDistanceAlongLinearElement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DistanceFromLinearElementStart))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DistanceFromLinearElementReferent))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class DistanceAlongLinearElement {
        
        private _ExtensionType _distanceAlongLinearElementExtensionField;
        
        /// <remarks/>
        public _ExtensionType _distanceAlongLinearElementExtension {
            get {
                return this._distanceAlongLinearElementExtensionField;
            }
            set {
                this._distanceAlongLinearElementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PercentageDistanceAlongLinearElement : DistanceAlongLinearElement {
        
        private float percentageDistanceAlongField;
        
        private _ExtensionType _percentageDistanceAlongLinearElementExtensionField;
        
        /// <remarks/>
        public float percentageDistanceAlong {
            get {
                return this.percentageDistanceAlongField;
            }
            set {
                this.percentageDistanceAlongField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _percentageDistanceAlongLinearElementExtension {
            get {
                return this._percentageDistanceAlongLinearElementExtensionField;
            }
            set {
                this._percentageDistanceAlongLinearElementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class DistanceFromLinearElementStart : DistanceAlongLinearElement {
        
        private float distanceAlongField;
        
        private _ExtensionType _distanceFromLinearElementStartExtensionField;
        
        /// <remarks/>
        public float distanceAlong {
            get {
                return this.distanceAlongField;
            }
            set {
                this.distanceAlongField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _distanceFromLinearElementStartExtension {
            get {
                return this._distanceFromLinearElementStartExtensionField;
            }
            set {
                this._distanceFromLinearElementStartExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class DistanceFromLinearElementReferent : DistanceAlongLinearElement {
        
        private float distanceAlongField;
        
        private Referent fromReferentField;
        
        private Referent towardsReferentField;
        
        private _ExtensionType _distanceFromLinearElementReferentExtensionField;
        
        /// <remarks/>
        public float distanceAlong {
            get {
                return this.distanceAlongField;
            }
            set {
                this.distanceAlongField = value;
            }
        }
        
        /// <remarks/>
        public Referent fromReferent {
            get {
                return this.fromReferentField;
            }
            set {
                this.fromReferentField = value;
            }
        }
        
        /// <remarks/>
        public Referent towardsReferent {
            get {
                return this.towardsReferentField;
            }
            set {
                this.towardsReferentField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _distanceFromLinearElementReferentExtension {
            get {
                return this._distanceFromLinearElementReferentExtensionField;
            }
            set {
                this._distanceFromLinearElementReferentExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PointByCoordinates {
        
        private string bearingField;
        
        private PointCoordinates pointCoordinatesField;
        
        private _ExtensionType _pointByCoordinatesExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string bearing {
            get {
                return this.bearingField;
            }
            set {
                this.bearingField = value;
            }
        }
        
        /// <remarks/>
        public PointCoordinates pointCoordinates {
            get {
                return this.pointCoordinatesField;
            }
            set {
                this.pointCoordinatesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _pointByCoordinatesExtension {
            get {
                return this._pointByCoordinatesExtensionField;
            }
            set {
                this._pointByCoordinatesExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class LinearWithinLinearElement {
        
        private MultilingualString administrativeAreaOfLinearSectionField;
        
        private _DirectionEnum directionOnLinearSectionField;
        
        private _LinearDirectionEnum directionRelativeOnLinearSectionField;
        
        private _HeightGradeEnum heightGradeOfLinearSectionField;
        
        private LinearElement linearElementField;
        
        private DistanceAlongLinearElement fromPointField;
        
        private DistanceAlongLinearElement toPointField;
        
        private _ExtensionType _linearWithinLinearElementExtensionField;
        
        /// <remarks/>
        public MultilingualString administrativeAreaOfLinearSection {
            get {
                return this.administrativeAreaOfLinearSectionField;
            }
            set {
                this.administrativeAreaOfLinearSectionField = value;
            }
        }
        
        /// <remarks/>
        public _DirectionEnum directionOnLinearSection {
            get {
                return this.directionOnLinearSectionField;
            }
            set {
                this.directionOnLinearSectionField = value;
            }
        }
        
        /// <remarks/>
        public _LinearDirectionEnum directionRelativeOnLinearSection {
            get {
                return this.directionRelativeOnLinearSectionField;
            }
            set {
                this.directionRelativeOnLinearSectionField = value;
            }
        }
        
        /// <remarks/>
        public _HeightGradeEnum heightGradeOfLinearSection {
            get {
                return this.heightGradeOfLinearSectionField;
            }
            set {
                this.heightGradeOfLinearSectionField = value;
            }
        }
        
        /// <remarks/>
        public LinearElement linearElement {
            get {
                return this.linearElementField;
            }
            set {
                this.linearElementField = value;
            }
        }
        
        /// <remarks/>
        public DistanceAlongLinearElement fromPoint {
            get {
                return this.fromPointField;
            }
            set {
                this.fromPointField = value;
            }
        }
        
        /// <remarks/>
        public DistanceAlongLinearElement toPoint {
            get {
                return this.toPointField;
            }
            set {
                this.toPointField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _linearWithinLinearElementExtension {
            get {
                return this._linearWithinLinearElementExtensionField;
            }
            set {
                this._linearWithinLinearElementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrLineLocationReference {
        
        private OpenlrLocationReferencePoint[] openlrLocationReferencePointField;
        
        private OpenlrLastLocationReferencePoint openlrLastLocationReferencePointField;
        
        private OpenlrOffsets openlrOffsetsField;
        
        private _ExtensionType _openlrLineLocationReferenceExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("openlrLocationReferencePoint")]
        public OpenlrLocationReferencePoint[] openlrLocationReferencePoint {
            get {
                return this.openlrLocationReferencePointField;
            }
            set {
                this.openlrLocationReferencePointField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrLastLocationReferencePoint openlrLastLocationReferencePoint {
            get {
                return this.openlrLastLocationReferencePointField;
            }
            set {
                this.openlrLastLocationReferencePointField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrOffsets openlrOffsets {
            get {
                return this.openlrOffsetsField;
            }
            set {
                this.openlrOffsetsField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrLineLocationReferenceExtension {
            get {
                return this._openlrLineLocationReferenceExtensionField;
            }
            set {
                this._openlrLineLocationReferenceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class OpenlrLinear {
        
        private OpenlrLineLocationReference firstDirectionField;
        
        private OpenlrLineLocationReference oppositeDirectionField;
        
        private _ExtensionType _openlrLinearExtensionField;
        
        /// <remarks/>
        public OpenlrLineLocationReference firstDirection {
            get {
                return this.firstDirectionField;
            }
            set {
                this.firstDirectionField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrLineLocationReference oppositeDirection {
            get {
                return this.oppositeDirectionField;
            }
            set {
                this.oppositeDirectionField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _openlrLinearExtension {
            get {
                return this._openlrLinearExtensionField;
            }
            set {
                this._openlrLinearExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _LaneEnum {
        
        private string _extendedValueField;
        
        private LaneEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public LaneEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum LaneEnum {
        
        /// <remarks/>
        allLanesCompleteCarriageway,
        
        /// <remarks/>
        busLane,
        
        /// <remarks/>
        busStop,
        
        /// <remarks/>
        carPoolLane,
        
        /// <remarks/>
        centralReservation,
        
        /// <remarks/>
        crawlerLane,
        
        /// <remarks/>
        cycleLane,
        
        /// <remarks/>
        emergencyLane,
        
        /// <remarks/>
        escapeLane,
        
        /// <remarks/>
        expressLane,
        
        /// <remarks/>
        hardShoulder,
        
        /// <remarks/>
        heavyVehicleLane,
        
        /// <remarks/>
        layBy,
        
        /// <remarks/>
        leftHandTurningLane,
        
        /// <remarks/>
        leftLane,
        
        /// <remarks/>
        localTrafficLane,
        
        /// <remarks/>
        middleLane,
        
        /// <remarks/>
        overtakingLane,
        
        /// <remarks/>
        rightHandTurningLane,
        
        /// <remarks/>
        rightLane,
        
        /// <remarks/>
        rushHourLane,
        
        /// <remarks/>
        setDownArea,
        
        /// <remarks/>
        slowVehicleLane,
        
        /// <remarks/>
        throughTrafficLane,
        
        /// <remarks/>
        tidalFlowLane,
        
        /// <remarks/>
        turningLane,
        
        /// <remarks/>
        verge,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class Lane {
        
        private string laneNumberField;
        
        private _LaneEnum laneUsageField;
        
        private _ExtensionType _laneExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="integer")]
        public string laneNumber {
            get {
                return this.laneNumberField;
            }
            set {
                this.laneNumberField = value;
            }
        }
        
        /// <remarks/>
        public _LaneEnum laneUsage {
            get {
                return this.laneUsageField;
            }
            set {
                this.laneUsageField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _laneExtension {
            get {
                return this._laneExtensionField;
            }
            set {
                this._laneExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _CarriagewayEnum {
        
        private string _extendedValueField;
        
        private CarriagewayEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public CarriagewayEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum CarriagewayEnum {
        
        /// <remarks/>
        connectingCarriageway,
        
        /// <remarks/>
        cycleTrack,
        
        /// <remarks/>
        entrySlipRoad,
        
        /// <remarks/>
        exitSlipRoad,
        
        /// <remarks/>
        flyover,
        
        /// <remarks/>
        footpath,
        
        /// <remarks/>
        leftHandFeederRoad,
        
        /// <remarks/>
        leftHandParallelCarriageway,
        
        /// <remarks/>
        mainCarriageway,
        
        /// <remarks/>
        oppositeCarriageway,
        
        /// <remarks/>
        parallelCarriageway,
        
        /// <remarks/>
        rightHandFeederRoad,
        
        /// <remarks/>
        rightHandParallelCarriageway,
        
        /// <remarks/>
        roundabout,
        
        /// <remarks/>
        serviceRoad,
        
        /// <remarks/>
        slipRoads,
        
        /// <remarks/>
        underpass,
        
        /// <remarks/>
        unspecifiedCarriageway,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class Carriageway {
        
        private _CarriagewayEnum carriagewayField;
        
        private Lane[] laneField;
        
        private _ExtensionType _carriagewayExtensionField;
        
        /// <remarks/>
        public _CarriagewayEnum carriageway {
            get {
                return this.carriagewayField;
            }
            set {
                this.carriagewayField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("lane")]
        public Lane[] lane {
            get {
                return this.laneField;
            }
            set {
                this.laneField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _carriagewayExtension {
            get {
                return this._carriagewayExtensionField;
            }
            set {
                this._carriagewayExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _InfrastructureDescriptorEnum {
        
        private string _extendedValueField;
        
        private InfrastructureDescriptorEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public InfrastructureDescriptorEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum InfrastructureDescriptorEnum {
        
        /// <remarks/>
        atMotorwayInterchange,
        
        /// <remarks/>
        atRestArea,
        
        /// <remarks/>
        atServiceArea,
        
        /// <remarks/>
        atTollPlaza,
        
        /// <remarks/>
        atTunnelEntryOrExit,
        
        /// <remarks/>
        inGallery,
        
        /// <remarks/>
        inTunnel,
        
        /// <remarks/>
        onBridge,
        
        /// <remarks/>
        onConnector,
        
        /// <remarks/>
        onElevatedSection,
        
        /// <remarks/>
        onFlyover,
        
        /// <remarks/>
        onIceRoad,
        
        /// <remarks/>
        onLevelCrossing,
        
        /// <remarks/>
        onLinkRoad,
        
        /// <remarks/>
        onRoundabout,
        
        /// <remarks/>
        onTheRoadway,
        
        /// <remarks/>
        onUndergroundSection,
        
        /// <remarks/>
        onUnderpass,
        
        /// <remarks/>
        withinJunction,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _GeographicCharacteristicEnum {
        
        private string _extendedValueField;
        
        private GeographicCharacteristicEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public GeographicCharacteristicEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum GeographicCharacteristicEnum {
        
        /// <remarks/>
        aroundABendInRoad,
        
        /// <remarks/>
        onBorder,
        
        /// <remarks/>
        onPass,
        
        /// <remarks/>
        overCrestOfHill,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class SupplementaryPositionalDescription {
        
        private _GeographicCharacteristicEnum geographicDescriptorField;
        
        private _InfrastructureDescriptorEnum infrastructureDescriptorField;
        
        private float lengthAffectedField;
        
        private bool lengthAffectedFieldSpecified;
        
        private Carriageway[] carriagewayField;
        
        private _ExtensionType _supplementaryPositionalDescriptionExtensionField;
        
        /// <remarks/>
        public _GeographicCharacteristicEnum geographicDescriptor {
            get {
                return this.geographicDescriptorField;
            }
            set {
                this.geographicDescriptorField = value;
            }
        }
        
        /// <remarks/>
        public _InfrastructureDescriptorEnum infrastructureDescriptor {
            get {
                return this.infrastructureDescriptorField;
            }
            set {
                this.infrastructureDescriptorField = value;
            }
        }
        
        /// <remarks/>
        public float lengthAffected {
            get {
                return this.lengthAffectedField;
            }
            set {
                this.lengthAffectedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lengthAffectedSpecified {
            get {
                return this.lengthAffectedFieldSpecified;
            }
            set {
                this.lengthAffectedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("carriageway")]
        public Carriageway[] carriageway {
            get {
                return this.carriagewayField;
            }
            set {
                this.carriagewayField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _supplementaryPositionalDescriptionExtension {
            get {
                return this._supplementaryPositionalDescriptionExtensionField;
            }
            set {
                this._supplementaryPositionalDescriptionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _NutsCodeTypeEnum {
        
        private string _extendedValueField;
        
        private NutsCodeTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public NutsCodeTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum NutsCodeTypeEnum {
        
        /// <remarks/>
        nuts1Code,
        
        /// <remarks/>
        nuts2Code,
        
        /// <remarks/>
        nuts3Code,
        
        /// <remarks/>
        lau1Code,
        
        /// <remarks/>
        lau2Code,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _SubdivisionTypeEnum {
        
        private string _extendedValueField;
        
        private SubdivisionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public SubdivisionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum SubdivisionTypeEnum {
        
        /// <remarks/>
        administrativeAtoll,
        
        /// <remarks/>
        administrativeRegion,
        
        /// <remarks/>
        administrativeTerritory,
        
        /// <remarks/>
        arcticRegion,
        
        /// <remarks/>
        autonomousCity,
        
        /// <remarks/>
        autonomousCityInNorthAfrica,
        
        /// <remarks/>
        autonomousCommunity,
        
        /// <remarks/>
        autonomousDistrict,
        
        /// <remarks/>
        autonomousProvince,
        
        /// <remarks/>
        autonomousRegion,
        
        /// <remarks/>
        canton,
        
        /// <remarks/>
        capitalCity,
        
        /// <remarks/>
        city,
        
        /// <remarks/>
        cityMunicipality,
        
        /// <remarks/>
        cityOfCountyRight,
        
        /// <remarks/>
        commune,
        
        /// <remarks/>
        councilArea,
        
        /// <remarks/>
        county,
        
        /// <remarks/>
        country,
        
        /// <remarks/>
        department,
        
        /// <remarks/>
        dependency,
        
        /// <remarks/>
        district,
        
        /// <remarks/>
        districtMunicipality,
        
        /// <remarks/>
        districtWithSpecialStatus,
        
        /// <remarks/>
        entity,
        
        /// <remarks/>
        geographicalEntity,
        
        /// <remarks/>
        governorate,
        
        /// <remarks/>
        laender,
        
        /// <remarks/>
        localCouncil,
        
        /// <remarks/>
        londonBorough,
        
        /// <remarks/>
        metropolitanArea,
        
        /// <remarks/>
        metropolitanDepartment,
        
        /// <remarks/>
        metropolitanDistrict,
        
        /// <remarks/>
        metropolitanRegion,
        
        /// <remarks/>
        municipality,
        
        /// <remarks/>
        overseasDepartment,
        
        /// <remarks/>
        overseasRegion,
        
        /// <remarks/>
        overseasTerritorialCollectivity,
        
        /// <remarks/>
        parish,
        
        /// <remarks/>
        province,
        
        /// <remarks/>
        quarter,
        
        /// <remarks/>
        region,
        
        /// <remarks/>
        republic,
        
        /// <remarks/>
        republicanCity,
        
        /// <remarks/>
        selfGovernedPart,
        
        /// <remarks/>
        specialMunicipality,
        
        /// <remarks/>
        state,
        
        /// <remarks/>
        territorialUnit,
        
        /// <remarks/>
        territory,
        
        /// <remarks/>
        twoTierCounty,
        
        /// <remarks/>
        unitaryAuthority,
        
        /// <remarks/>
        ward,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class _NamedAreaTypeEnum {
        
        private string _extendedValueField;
        
        private NamedAreaTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public NamedAreaTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public enum NamedAreaTypeEnum {
        
        /// <remarks/>
        applicationRegion,
        
        /// <remarks/>
        continent,
        
        /// <remarks/>
        country,
        
        /// <remarks/>
        countryGroup,
        
        /// <remarks/>
        carParkArea,
        
        /// <remarks/>
        carpoolArea,
        
        /// <remarks/>
        fuzzyArea,
        
        /// <remarks/>
        industrialArea,
        
        /// <remarks/>
        lake,
        
        /// <remarks/>
        meteorologicalArea,
        
        /// <remarks/>
        metropolitanArea,
        
        /// <remarks/>
        municipality,
        
        /// <remarks/>
        parkAndRideSite,
        
        /// <remarks/>
        ruralCounty,
        
        /// <remarks/>
        sea,
        
        /// <remarks/>
        touristArea,
        
        /// <remarks/>
        trafficArea,
        
        /// <remarks/>
        urbanCounty,
        
        /// <remarks/>
        order1AdministrativeArea,
        
        /// <remarks/>
        order2AdministrativeArea,
        
        /// <remarks/>
        order3AdministrativeArea,
        
        /// <remarks/>
        order4AdministrativeArea,
        
        /// <remarks/>
        order5AdministrativeArea,
        
        /// <remarks/>
        policeForceControlArea,
        
        /// <remarks/>
        roadOperatorControlArea,
        
        /// <remarks/>
        waterArea,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NamedArea1))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NutsNamedArea))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(IsoNamedArea))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public abstract partial class NamedArea {
        
        private _ExtensionType _namedAreaExtensionField;
        
        /// <remarks/>
        public _ExtensionType _namedAreaExtension {
            get {
                return this._namedAreaExtensionField;
            }
            set {
                this._namedAreaExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NutsNamedArea))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(IsoNamedArea))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName="NamedArea", Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class NamedArea1 : NamedArea {
        
        private MultilingualString areaNameField;
        
        private _NamedAreaTypeEnum namedAreaTypeField;
        
        private string countryField;
        
        private _ExtensionType _namedAreaExtension1Field;
        
        /// <remarks/>
        public MultilingualString areaName {
            get {
                return this.areaNameField;
            }
            set {
                this.areaNameField = value;
            }
        }
        
        /// <remarks/>
        public _NamedAreaTypeEnum namedAreaType {
            get {
                return this.namedAreaTypeField;
            }
            set {
                this.namedAreaTypeField = value;
            }
        }
        
        /// <remarks/>
        public string country {
            get {
                return this.countryField;
            }
            set {
                this.countryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("_namedAreaExtension")]
        public _ExtensionType _namedAreaExtension1 {
            get {
                return this._namedAreaExtension1Field;
            }
            set {
                this._namedAreaExtension1Field = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class NutsNamedArea : NamedArea1 {
        
        private _NutsCodeTypeEnum nutsCodeTypeField;
        
        private string nutsCodeField;
        
        private _ExtensionType _nutsNamedAreaExtensionField;
        
        /// <remarks/>
        public _NutsCodeTypeEnum nutsCodeType {
            get {
                return this.nutsCodeTypeField;
            }
            set {
                this.nutsCodeTypeField = value;
            }
        }
        
        /// <remarks/>
        public string nutsCode {
            get {
                return this.nutsCodeField;
            }
            set {
                this.nutsCodeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _nutsNamedAreaExtension {
            get {
                return this._nutsNamedAreaExtensionField;
            }
            set {
                this._nutsNamedAreaExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class IsoNamedArea : NamedArea1 {
        
        private _SubdivisionTypeEnum subdivisionTypeField;
        
        private string subdivisionCodeField;
        
        private _ExtensionType _isoNamedAreaExtensionField;
        
        /// <remarks/>
        public _SubdivisionTypeEnum subdivisionType {
            get {
                return this.subdivisionTypeField;
            }
            set {
                this.subdivisionTypeField = value;
            }
        }
        
        /// <remarks/>
        public string subdivisionCode {
            get {
                return this.subdivisionCodeField;
            }
            set {
                this.subdivisionCodeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _isoNamedAreaExtension {
            get {
                return this._isoNamedAreaExtensionField;
            }
            set {
                this._isoNamedAreaExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Location))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NetworkLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PointLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SingleRoadLinearLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AreaLocation))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class LocationReference {
        
        private _ExtensionType _locationReferenceExtensionField;
        
        /// <remarks/>
        public _ExtensionType _locationReferenceExtension {
            get {
                return this._locationReferenceExtensionField;
            }
            set {
                this._locationReferenceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NetworkLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PointLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SingleRoadLinearLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AreaLocation))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class Location : LocationReference {
        
        private _ExtensionType _locationExtensionField;
        
        /// <remarks/>
        public _ExtensionType _locationExtension {
            get {
                return this._locationExtensionField;
            }
            set {
                this._locationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PointLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearLocation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SingleRoadLinearLocation))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public abstract partial class NetworkLocation : Location {
        
        private SupplementaryPositionalDescription supplementaryPositionalDescriptionField;
        
        private _ExtensionType _networkLocationExtensionField;
        
        /// <remarks/>
        public SupplementaryPositionalDescription supplementaryPositionalDescription {
            get {
                return this.supplementaryPositionalDescriptionField;
            }
            set {
                this.supplementaryPositionalDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _networkLocationExtension {
            get {
                return this._networkLocationExtensionField;
            }
            set {
                this._networkLocationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class PointLocation : NetworkLocation {
        
        private PointByCoordinates pointByCoordinatesField;
        
        private PointAlongLinearElement[] pointAlongLinearElementField;
        
        private OpenlrPointLocationReference openlrPointLocationReferenceField;
        
        private _ExtensionType _pointLocationExtensionField;
        
        /// <remarks/>
        public PointByCoordinates pointByCoordinates {
            get {
                return this.pointByCoordinatesField;
            }
            set {
                this.pointByCoordinatesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("pointAlongLinearElement")]
        public PointAlongLinearElement[] pointAlongLinearElement {
            get {
                return this.pointAlongLinearElementField;
            }
            set {
                this.pointAlongLinearElementField = value;
            }
        }
        
        /// <remarks/>
        public OpenlrPointLocationReference openlrPointLocationReference {
            get {
                return this.openlrPointLocationReferenceField;
            }
            set {
                this.openlrPointLocationReferenceField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _pointLocationExtension {
            get {
                return this._pointLocationExtensionField;
            }
            set {
                this._pointLocationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SingleRoadLinearLocation))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class LinearLocation : NetworkLocation {
        
        private OpenlrLinear openlrLinearField;
        
        private _ExtensionType _linearLocationExtensionField;
        
        /// <remarks/>
        public OpenlrLinear openlrLinear {
            get {
                return this.openlrLinearField;
            }
            set {
                this.openlrLinearField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _linearLocationExtension {
            get {
                return this._linearLocationExtensionField;
            }
            set {
                this._linearLocationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class SingleRoadLinearLocation : LinearLocation {
        
        private LinearWithinLinearElement[] linearWithinLinearElementField;
        
        private _ExtensionType _singleRoadLinearLocationExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("linearWithinLinearElement")]
        public LinearWithinLinearElement[] linearWithinLinearElement {
            get {
                return this.linearWithinLinearElementField;
            }
            set {
                this.linearWithinLinearElementField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _singleRoadLinearLocationExtension {
            get {
                return this._singleRoadLinearLocationExtensionField;
            }
            set {
                this._singleRoadLinearLocationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/locationReferencing")]
    public partial class AreaLocation : Location {
        
        private NamedArea1 namedAreaField;
        
        private _ExtensionType _areaLocationExtensionField;
        
        /// <remarks/>
        public NamedArea1 namedArea {
            get {
                return this.namedAreaField;
            }
            set {
                this.namedAreaField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _areaLocationExtension {
            get {
                return this._areaLocationExtensionField;
            }
            set {
                this._areaLocationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _UrlLinkTypeEnum {
        
        private string _extendedValueField;
        
        private UrlLinkTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public UrlLinkTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum UrlLinkTypeEnum {
        
        /// <remarks/>
        documentPdf,
        
        /// <remarks/>
        html,
        
        /// <remarks/>
        image,
        
        /// <remarks/>
        rss,
        
        /// <remarks/>
        videoStream,
        
        /// <remarks/>
        voiceStream,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class UrlLink {
        
        private string urlLinkAddressField;
        
        private MultilingualString urlLinkDescriptionField;
        
        private _UrlLinkTypeEnum urlLinkTypeField;
        
        private _ExtensionType _urlLinkExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI")]
        public string urlLinkAddress {
            get {
                return this.urlLinkAddressField;
            }
            set {
                this.urlLinkAddressField = value;
            }
        }
        
        /// <remarks/>
        public MultilingualString urlLinkDescription {
            get {
                return this.urlLinkDescriptionField;
            }
            set {
                this.urlLinkDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public _UrlLinkTypeEnum urlLinkType {
            get {
                return this.urlLinkTypeField;
            }
            set {
                this.urlLinkTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _urlLinkExtension {
            get {
                return this._urlLinkExtensionField;
            }
            set {
                this._urlLinkExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _CommentTypeEnum {
        
        private string _extendedValueField;
        
        private CommentTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public CommentTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum CommentTypeEnum {
        
        /// <remarks/>
        abnormalLoadMovementNote,
        
        /// <remarks/>
        dataProcessingNote,
        
        /// <remarks/>
        description,
        
        /// <remarks/>
        internalNote,
        
        /// <remarks/>
        roadworksName,
        
        /// <remarks/>
        warning,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Comment {
        
        private MultilingualString commentField;
        
        private System.DateTime commentDateTimeField;
        
        private bool commentDateTimeFieldSpecified;
        
        private _CommentTypeEnum commentTypeField;
        
        private _ExtensionType _commentExtensionField;
        
        /// <remarks/>
        public MultilingualString comment {
            get {
                return this.commentField;
            }
            set {
                this.commentField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime commentDateTime {
            get {
                return this.commentDateTimeField;
            }
            set {
                this.commentDateTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool commentDateTimeSpecified {
            get {
                return this.commentDateTimeFieldSpecified;
            }
            set {
                this.commentDateTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _CommentTypeEnum commentType {
            get {
                return this.commentTypeField;
            }
            set {
                this.commentTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _commentExtension {
            get {
                return this._commentExtensionField;
            }
            set {
                this._commentExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(_SituationRecordVersionedReference))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class VersionedReference {
        
        private string idField;
        
        private string versionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string version {
            get {
                return this.versionField;
            }
            set {
                this.versionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _SituationRecordVersionedReference : VersionedReference {
        
        private string targetClassField;
        
        public _SituationRecordVersionedReference() {
            this.targetClassField = "sit:SituationRecord";
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string targetClass {
            get {
                return this.targetClassField;
            }
            set {
                this.targetClassField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SituationRecordReference))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public abstract partial class GlobalReference {
        
        private _ExtensionType _globalReferenceExtensionField;
        
        /// <remarks/>
        public _ExtensionType _globalReferenceExtension {
            get {
                return this._globalReferenceExtensionField;
            }
            set {
                this._globalReferenceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class SituationRecordReference : GlobalReference {
        
        private _SituationRecordVersionedReference objectReferenceField;
        
        private _ExtensionType _situationRecordReferenceExtensionField;
        
        /// <remarks/>
        public _SituationRecordVersionedReference objectReference {
            get {
                return this.objectReferenceField;
            }
            set {
                this.objectReferenceField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _situationRecordReferenceExtension {
            get {
                return this._situationRecordReferenceExtensionField;
            }
            set {
                this._situationRecordReferenceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _WinterEquipmentManagementTypeEnum {
        
        private string _extendedValueField;
        
        private WinterEquipmentManagementTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public WinterEquipmentManagementTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum WinterEquipmentManagementTypeEnum {
        
        /// <remarks/>
        doNotUseStudTyres,
        
        /// <remarks/>
        useSnowChains,
        
        /// <remarks/>
        useSnowChainsOrTyres,
        
        /// <remarks/>
        useSnowTyres,
        
        /// <remarks/>
        winterEquipmentOnBoardRequired,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _WeatherRelatedRoadConditionTypeEnum {
        
        private string _extendedValueField;
        
        private WeatherRelatedRoadConditionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public WeatherRelatedRoadConditionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum WeatherRelatedRoadConditionTypeEnum {
        
        /// <remarks/>
        blackIce,
        
        /// <remarks/>
        deepSnow,
        
        /// <remarks/>
        dry,
        
        /// <remarks/>
        freezingOfWetRoads,
        
        /// <remarks/>
        freezingPavements,
        
        /// <remarks/>
        freezingRain,
        
        /// <remarks/>
        freshSnow,
        
        /// <remarks/>
        glaze,
        
        /// <remarks/>
        ice,
        
        /// <remarks/>
        iceBuildUp,
        
        /// <remarks/>
        iceWithWheelBarTracks,
        
        /// <remarks/>
        icyPatches,
        
        /// <remarks/>
        looseSnow,
        
        /// <remarks/>
        moist,
        
        /// <remarks/>
        normalWinterConditionsForPedestrians,
        
        /// <remarks/>
        notDry,
        
        /// <remarks/>
        packedSnow,
        
        /// <remarks/>
        rime,
        
        /// <remarks/>
        roadSurfaceMelting,
        
        /// <remarks/>
        slippery,
        
        /// <remarks/>
        slushOnRoad,
        
        /// <remarks/>
        slushStrings,
        
        /// <remarks/>
        snow,
        
        /// <remarks/>
        snowDrifts,
        
        /// <remarks/>
        snowOnPavement,
        
        /// <remarks/>
        wetAndIcyRoad,
        
        /// <remarks/>
        snowOnTheRoad,
        
        /// <remarks/>
        wetIcyPavement,
        
        /// <remarks/>
        streamingWater,
        
        /// <remarks/>
        surfaceWater,
        
        /// <remarks/>
        wet,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _VehicleObstructionTypeEnum {
        
        private string _extendedValueField;
        
        private VehicleObstructionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public VehicleObstructionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum VehicleObstructionTypeEnum {
        
        /// <remarks/>
        abandonedVehicle,
        
        /// <remarks/>
        abnormalLoad,
        
        /// <remarks/>
        brokenDownVehicle,
        
        /// <remarks/>
        convoy,
        
        /// <remarks/>
        damagedVehicle,
        
        /// <remarks/>
        dangerousSlowMovingVehicle,
        
        /// <remarks/>
        emergencyVehicle,
        
        /// <remarks/>
        highSpeedEmergencyVehicle,
        
        /// <remarks/>
        longLoad,
        
        /// <remarks/>
        highSpeedChase,
        
        /// <remarks/>
        medicalEmergency,
        
        /// <remarks/>
        militaryConvoy,
        
        /// <remarks/>
        overheightVehicle,
        
        /// <remarks/>
        prohibitedVehicleOnTheRoad,
        
        /// <remarks/>
        recklessDriver,
        
        /// <remarks/>
        slowVehicle,
        
        /// <remarks/>
        specialPermitTransport,
        
        /// <remarks/>
        trackedVehicle,
        
        /// <remarks/>
        unlitVehicleOnTheRoad,
        
        /// <remarks/>
        vehicleOnFire,
        
        /// <remarks/>
        vehicleCarryingHazardousMaterials,
        
        /// <remarks/>
        vehicleInDifficulty,
        
        /// <remarks/>
        vehicleOnWrongCarriageway,
        
        /// <remarks/>
        vehicleStuck,
        
        /// <remarks/>
        vehicleWithOverheightLoad,
        
        /// <remarks/>
        vehicleWithOverwideLoad,
        
        /// <remarks/>
        winterMaintetanceVehicleInTransfer,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _TransitServiceInformationEnum {
        
        private string _extendedValueField;
        
        private TransitServiceInformationEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public TransitServiceInformationEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum TransitServiceInformationEnum {
        
        /// <remarks/>
        cancellations,
        
        /// <remarks/>
        delayDueToBadWeather,
        
        /// <remarks/>
        delayDueToRepairs,
        
        /// <remarks/>
        delayedUntilFurtherNotice,
        
        /// <remarks/>
        delaysDueToFlotsam,
        
        /// <remarks/>
        departureOnSchedule,
        
        /// <remarks/>
        ferryReplacedByIceRoad,
        
        /// <remarks/>
        freeShuttleServiceOperating,
        
        /// <remarks/>
        informationServiceNotAvailable,
        
        /// <remarks/>
        irregularServiceDelays,
        
        /// <remarks/>
        loadCapacityChanged,
        
        /// <remarks/>
        restrictionsForLongerVehicles,
        
        /// <remarks/>
        serviceDelays,
        
        /// <remarks/>
        serviceDelaysOfUncertainDuration,
        
        /// <remarks/>
        serviceFullyBooked,
        
        /// <remarks/>
        serviceNotOperating,
        
        /// <remarks/>
        serviceNotOperatingSubstituteServiceAvailable,
        
        /// <remarks/>
        serviceSuspended,
        
        /// <remarks/>
        serviceWithdrawn,
        
        /// <remarks/>
        shuttleServiceOperating,
        
        /// <remarks/>
        temporaryChangesToTimetables,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _SpeedManagementTypeEnum {
        
        private string _extendedValueField;
        
        private SpeedManagementTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public SpeedManagementTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum SpeedManagementTypeEnum {
        
        /// <remarks/>
        activeSpeedControlInOperation,
        
        /// <remarks/>
        doNotSlowdownUnnecessarily,
        
        /// <remarks/>
        observeSpeedLimit,
        
        /// <remarks/>
        policeSpeedChecksInOperation,
        
        /// <remarks/>
        reduceYourSpeed,
        
        /// <remarks/>
        speedRestrictionInOperation,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _ServiceDisruptionTypeEnum {
        
        private string _extendedValueField;
        
        private ServiceDisruptionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ServiceDisruptionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum ServiceDisruptionTypeEnum {
        
        /// <remarks/>
        barClosed,
        
        /// <remarks/>
        dieselShortage,
        
        /// <remarks/>
        fuelShortage,
        
        /// <remarks/>
        lpgShortage,
        
        /// <remarks/>
        methaneShortage,
        
        /// <remarks/>
        noDieselForHeavyVehicles,
        
        /// <remarks/>
        noDieselForLightVehicles,
        
        /// <remarks/>
        noParkingAvailability,
        
        /// <remarks/>
        noPublicTelephones,
        
        /// <remarks/>
        noToiletFacilities,
        
        /// <remarks/>
        noVehicleRepairFacilities,
        
        /// <remarks/>
        petrolShortage,
        
        /// <remarks/>
        restAreaBusy,
        
        /// <remarks/>
        restAreaClosed,
        
        /// <remarks/>
        restAreaOvercrowdedDriveToAnotherRestArea,
        
        /// <remarks/>
        serviceAreaBusy,
        
        /// <remarks/>
        serviceAreaClosed,
        
        /// <remarks/>
        serviceAreaFuelStationClosed,
        
        /// <remarks/>
        serviceAreaOvercrowdedDriveToAnotherServiceArea,
        
        /// <remarks/>
        serviceAreaRestaurantClosed,
        
        /// <remarks/>
        someCommercialServicesClosed,
        
        /// <remarks/>
        waterShortage,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _RoadsideAssistanceTypeEnum {
        
        private string _extendedValueField;
        
        private RoadsideAssistanceTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public RoadsideAssistanceTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum RoadsideAssistanceTypeEnum {
        
        /// <remarks/>
        airAmbulance,
        
        /// <remarks/>
        busPassengerAssistance,
        
        /// <remarks/>
        emergencyServices,
        
        /// <remarks/>
        firstAid,
        
        /// <remarks/>
        foodDelivery,
        
        /// <remarks/>
        helicopterRescue,
        
        /// <remarks/>
        vehicleRepair,
        
        /// <remarks/>
        vehicleRecovery,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _RoadOrCarriagewayOrLaneManagementTypeEnum {
        
        private string _extendedValueField;
        
        private RoadOrCarriagewayOrLaneManagementTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public RoadOrCarriagewayOrLaneManagementTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum RoadOrCarriagewayOrLaneManagementTypeEnum {
        
        /// <remarks/>
        carPoolLaneInOperation,
        
        /// <remarks/>
        carriagewayClosures,
        
        /// <remarks/>
        clearALaneForEmergencyVehicles,
        
        /// <remarks/>
        clearALaneForSnowploughsAndGrittingVehicles,
        
        /// <remarks/>
        closedPermanentlyForTheWinter,
        
        /// <remarks/>
        contraflow,
        
        /// <remarks/>
        doNotUseSpecifiedLanesOrCarriageways,
        
        /// <remarks/>
        hardShoulderRunningInOperation,
        
        /// <remarks/>
        hardShoulderRunningNotInOperation,
        
        /// <remarks/>
        heightRestrictionInOperation,
        
        /// <remarks/>
        intermittentShortTermClosures,
        
        /// <remarks/>
        keepToTheLeft,
        
        /// <remarks/>
        keepToTheRight,
        
        /// <remarks/>
        laneClosures,
        
        /// <remarks/>
        lanesDeviated,
        
        /// <remarks/>
        narrowLanes,
        
        /// <remarks/>
        newRoadworksLayout,
        
        /// <remarks/>
        overnightClosures,
        
        /// <remarks/>
        roadCleared,
        
        /// <remarks/>
        roadClosed,
        
        /// <remarks/>
        rollingRoadBlock,
        
        /// <remarks/>
        rushHourLaneInOperation,
        
        /// <remarks/>
        singleAlternateLineTraffic,
        
        /// <remarks/>
        tidalFlowLaneInOperation,
        
        /// <remarks/>
        turnAroundInOperation,
        
        /// <remarks/>
        useOfSpecifiedLanesOrCarriagewaysAllowed,
        
        /// <remarks/>
        useSpecifiedLanesOrCarriageways,
        
        /// <remarks/>
        vehicleStorageInOperation,
        
        /// <remarks/>
        weightRestrictionInOperation,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _RoadOperatorServiceDisruptionTypeEnum {
        
        private string _extendedValueField;
        
        private RoadOperatorServiceDisruptionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public RoadOperatorServiceDisruptionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum RoadOperatorServiceDisruptionTypeEnum {
        
        /// <remarks/>
        emergencyTelephoneNumberOutOfService,
        
        /// <remarks/>
        informationServiceTelephoneNumberOutOfService,
        
        /// <remarks/>
        noTrafficOfficerPatrolService,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _RoadMaintenanceTypeEnum {
        
        private string _extendedValueField;
        
        private RoadMaintenanceTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public RoadMaintenanceTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum RoadMaintenanceTypeEnum {
        
        /// <remarks/>
        accidentRepairWork,
        
        /// <remarks/>
        clearanceWork,
        
        /// <remarks/>
        controlledAvalanche,
        
        /// <remarks/>
        installationWork,
        
        /// <remarks/>
        grassCuttingWork,
        
        /// <remarks/>
        litterClearance,
        
        /// <remarks/>
        maintenanceWork,
        
        /// <remarks/>
        maintenancePeopleOnRoad,
        
        /// <remarks/>
        overheadWorks,
        
        /// <remarks/>
        repairWork,
        
        /// <remarks/>
        resurfacingWork,
        
        /// <remarks/>
        roadMarkingWork,
        
        /// <remarks/>
        roadsideWork,
        
        /// <remarks/>
        roadworksClearance,
        
        /// <remarks/>
        roadworks,
        
        /// <remarks/>
        rockFallPreventativeMaintenance,
        
        /// <remarks/>
        saltingInProgress,
        
        /// <remarks/>
        snowploughsInUse,
        
        /// <remarks/>
        sweepingOfRoad,
        
        /// <remarks/>
        treeAndVegetationCuttingWork,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _ReroutingManagementTypeEnum {
        
        private string _extendedValueField;
        
        private ReroutingManagementTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ReroutingManagementTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum ReroutingManagementTypeEnum {
        
        /// <remarks/>
        doNotFollowDiversionSigns,
        
        /// <remarks/>
        doNotUseEntry,
        
        /// <remarks/>
        doNotUseExit,
        
        /// <remarks/>
        doNotUseIntersectionOrJunction,
        
        /// <remarks/>
        followDiversionSigns,
        
        /// <remarks/>
        followLocalDiversion,
        
        /// <remarks/>
        followSpecialMarkers,
        
        /// <remarks/>
        useEntry,
        
        /// <remarks/>
        useExit,
        
        /// <remarks/>
        useIntersectionOrJunction,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _PublicEventTypeEnum {
        
        private string _extendedValueField;
        
        private PublicEventTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public PublicEventTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum PublicEventTypeEnum {
        
        /// <remarks/>
        agriculturalShow,
        
        /// <remarks/>
        airShow,
        
        /// <remarks/>
        artEvent,
        
        /// <remarks/>
        athleticsMeeting,
        
        /// <remarks/>
        commercialEvent,
        
        /// <remarks/>
        culturalEvent,
        
        /// <remarks/>
        ballGame,
        
        /// <remarks/>
        baseballGame,
        
        /// <remarks/>
        basketballGame,
        
        /// <remarks/>
        beerFestival,
        
        /// <remarks/>
        bicycleRace,
        
        /// <remarks/>
        boatRace,
        
        /// <remarks/>
        boatShow,
        
        /// <remarks/>
        boxingTournament,
        
        /// <remarks/>
        bullFight,
        
        /// <remarks/>
        ceremonialEvent,
        
        /// <remarks/>
        concert,
        
        /// <remarks/>
        cricketMatch,
        
        /// <remarks/>
        exhibition,
        
        /// <remarks/>
        fair,
        
        /// <remarks/>
        festival,
        
        /// <remarks/>
        filmFestival,
        
        /// <remarks/>
        filmTVMaking,
        
        /// <remarks/>
        fireworkDisplay,
        
        /// <remarks/>
        flowerEvent,
        
        /// <remarks/>
        foodFestival,
        
        /// <remarks/>
        footballMatch,
        
        /// <remarks/>
        funfair,
        
        /// <remarks/>
        gardeningOrFlowerShow,
        
        /// <remarks/>
        golfTournament,
        
        /// <remarks/>
        hockeyGame,
        
        /// <remarks/>
        horseRaceMeeting,
        
        /// <remarks/>
        internationalSportsMeeting,
        
        /// <remarks/>
        majorEvent,
        
        /// <remarks/>
        marathon,
        
        /// <remarks/>
        market,
        
        /// <remarks/>
        match,
        
        /// <remarks/>
        motorShow,
        
        /// <remarks/>
        motorSportRaceMeeting,
        
        /// <remarks/>
        openAirConcert,
        
        /// <remarks/>
        parade,
        
        /// <remarks/>
        procession,
        
        /// <remarks/>
        raceMeeting,
        
        /// <remarks/>
        rugbyMatch,
        
        /// <remarks/>
        severalMajorEvents,
        
        /// <remarks/>
        show,
        
        /// <remarks/>
        showJumping,
        
        /// <remarks/>
        soundAndLightShow,
        
        /// <remarks/>
        sportsMeeting,
        
        /// <remarks/>
        stateOccasion,
        
        /// <remarks/>
        streetFestival,
        
        /// <remarks/>
        tennisTournament,
        
        /// <remarks/>
        theatricalEvent,
        
        /// <remarks/>
        tournament,
        
        /// <remarks/>
        tradeFair,
        
        /// <remarks/>
        waterSportsMeeting,
        
        /// <remarks/>
        wineFestival,
        
        /// <remarks/>
        winterSportsMeeting,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _PoorEnvironmentTypeEnum {
        
        private string _extendedValueField;
        
        private PoorEnvironmentTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public PoorEnvironmentTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum PoorEnvironmentTypeEnum {
        
        /// <remarks/>
        badWeather,
        
        /// <remarks/>
        blizzard,
        
        /// <remarks/>
        blowingDust,
        
        /// <remarks/>
        blowingSnow,
        
        /// <remarks/>
        crosswinds,
        
        /// <remarks/>
        damagingHail,
        
        /// <remarks/>
        denseFog,
        
        /// <remarks/>
        eclipse,
        
        /// <remarks/>
        extremeCold,
        
        /// <remarks/>
        extremeHeat,
        
        /// <remarks/>
        fog,
        
        /// <remarks/>
        freezingFog,
        
        /// <remarks/>
        frost,
        
        /// <remarks/>
        gales,
        
        /// <remarks/>
        gustyWinds,
        
        /// <remarks/>
        hail,
        
        /// <remarks/>
        heavyFrost,
        
        /// <remarks/>
        heavyRain,
        
        /// <remarks/>
        heavySnowfall,
        
        /// <remarks/>
        hurricaneForceWinds,
        
        /// <remarks/>
        lowSunGlare,
        
        /// <remarks/>
        moderateFog,
        
        /// <remarks/>
        nearbyFire,
        
        /// <remarks/>
        nearbyFlooding,
        
        /// <remarks/>
        ozonePollution,
        
        /// <remarks/>
        pollution,
        
        /// <remarks/>
        patchyFog,
        
        /// <remarks/>
        precipitationInTheArea,
        
        /// <remarks/>
        rain,
        
        /// <remarks/>
        rainChangingToSnow,
        
        /// <remarks/>
        sandStorms,
        
        /// <remarks/>
        severeExhaustPollution,
        
        /// <remarks/>
        severeSmog,
        
        /// <remarks/>
        showers,
        
        /// <remarks/>
        sleet,
        
        /// <remarks/>
        smogAlert,
        
        /// <remarks/>
        smokeHazard,
        
        /// <remarks/>
        snowChangingToRain,
        
        /// <remarks/>
        snowfall,
        
        /// <remarks/>
        sprayHazard,
        
        /// <remarks/>
        stormForceWinds,
        
        /// <remarks/>
        strongGustsOfWind,
        
        /// <remarks/>
        strongWinds,
        
        /// <remarks/>
        swarmsOfInsects,
        
        /// <remarks/>
        temperatureFalling,
        
        /// <remarks/>
        thunderstorms,
        
        /// <remarks/>
        tornadoes,
        
        /// <remarks/>
        veryStrongGustsOfWind,
        
        /// <remarks/>
        visibilityReduced,
        
        /// <remarks/>
        whiteOut,
        
        /// <remarks/>
        winterStorm,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _ObstructionTypeEnum {
        
        private string _extendedValueField;
        
        private ObstructionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ObstructionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum ObstructionTypeEnum {
        
        /// <remarks/>
        airCrash,
        
        /// <remarks/>
        childrenOnRoadway,
        
        /// <remarks/>
        clearanceWork,
        
        /// <remarks/>
        craneOperating,
        
        /// <remarks/>
        cyclistsOnRoadway,
        
        /// <remarks/>
        debris,
        
        /// <remarks/>
        explosion,
        
        /// <remarks/>
        explosionHazard,
        
        /// <remarks/>
        hazardsOnTheRoad,
        
        /// <remarks/>
        incident,
        
        /// <remarks/>
        industrialAccident,
        
        /// <remarks/>
        objectOnTheRoad,
        
        /// <remarks/>
        objectsFallingFromMovingVehicle,
        
        /// <remarks/>
        obstructionOnTheRoad,
        
        /// <remarks/>
        peopleOnRoadway,
        
        /// <remarks/>
        railCrash,
        
        /// <remarks/>
        rescueAndRecoveryWork,
        
        /// <remarks/>
        severeFrostDamagedRoadway,
        
        /// <remarks/>
        shedLoad,
        
        /// <remarks/>
        snowAndIceDebris,
        
        /// <remarks/>
        spillageOccurringFromMovingVehicle,
        
        /// <remarks/>
        spillageOnTheRoad,
        
        /// <remarks/>
        unprotectedAccidentArea,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _NonWeatherRelatedRoadConditionTypeEnum {
        
        private string _extendedValueField;
        
        private NonWeatherRelatedRoadConditionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public NonWeatherRelatedRoadConditionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum NonWeatherRelatedRoadConditionTypeEnum {
        
        /// <remarks/>
        dieselOnRoad,
        
        /// <remarks/>
        leavesOnRoad,
        
        /// <remarks/>
        looseChippings,
        
        /// <remarks/>
        looseSandOnRoad,
        
        /// <remarks/>
        mudOnRoad,
        
        /// <remarks/>
        oilOnRoad,
        
        /// <remarks/>
        petrolOnRoad,
        
        /// <remarks/>
        roadMarkingNotPresent,
        
        /// <remarks/>
        roadSurfaceInPoorCondition,
        
        /// <remarks/>
        slipperyRoad,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _InfrastructureDamageTypeEnum {
        
        private string _extendedValueField;
        
        private InfrastructureDamageTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public InfrastructureDamageTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum InfrastructureDamageTypeEnum {
        
        /// <remarks/>
        burstPipe,
        
        /// <remarks/>
        burstWaterMain,
        
        /// <remarks/>
        collapsedSewer,
        
        /// <remarks/>
        damagedBridge,
        
        /// <remarks/>
        damagedCrashBarrier,
        
        /// <remarks/>
        damagedFlyover,
        
        /// <remarks/>
        damagedGallery,
        
        /// <remarks/>
        damagedGantry,
        
        /// <remarks/>
        damagedRoadSurface,
        
        /// <remarks/>
        damagedTunnel,
        
        /// <remarks/>
        damagedViaduct,
        
        /// <remarks/>
        fallenPowerCables,
        
        /// <remarks/>
        gasLeak,
        
        /// <remarks/>
        weakBridge,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _GeneralNetworkManagementTypeEnum {
        
        private string _extendedValueField;
        
        private GeneralNetworkManagementTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public GeneralNetworkManagementTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum GeneralNetworkManagementTypeEnum {
        
        /// <remarks/>
        bridgeSwingInOperation,
        
        /// <remarks/>
        convoyService,
        
        /// <remarks/>
        obstacleSignalling,
        
        /// <remarks/>
        rampMeteringInOperation,
        
        /// <remarks/>
        temporaryTrafficLights,
        
        /// <remarks/>
        tollGatesOpen,
        
        /// <remarks/>
        trafficBeingManuallyDirected,
        
        /// <remarks/>
        trafficHeld,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _GeneralInstructionToRoadUsersTypeEnum {
        
        private string _extendedValueField;
        
        private GeneralInstructionToRoadUsersTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public GeneralInstructionToRoadUsersTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum GeneralInstructionToRoadUsersTypeEnum {
        
        /// <remarks/>
        allowEmergencyVehiclesToPass,
        
        /// <remarks/>
        approachWithCare,
        
        /// <remarks/>
        avoidTheArea,
        
        /// <remarks/>
        closeAllWindowsTurnOffHeaterAndVents,
        
        /// <remarks/>
        crossJunctionWithCare,
        
        /// <remarks/>
        doNotAllowUnnecessaryGaps,
        
        /// <remarks/>
        doNotLeaveYourVehicle,
        
        /// <remarks/>
        doNotThrowOutAnyBurningObjects,
        
        /// <remarks/>
        doNotUseNavigationSystems,
        
        /// <remarks/>
        driveCarefully,
        
        /// <remarks/>
        driveWithExtremeCaution,
        
        /// <remarks/>
        flashYourLights,
        
        /// <remarks/>
        followTheVehicleInFrontSmoothly,
        
        /// <remarks/>
        increaseNormalFollowingDistance,
        
        /// <remarks/>
        inEmergencyWaitForPatrolService,
        
        /// <remarks/>
        keepYourDistance,
        
        /// <remarks/>
        leaveYourVehicleProceedToNextSafePlace,
        
        /// <remarks/>
        noNakedFlames,
        
        /// <remarks/>
        noOvertaking,
        
        /// <remarks/>
        noSmoking,
        
        /// <remarks/>
        noStopping,
        
        /// <remarks/>
        noUturns,
        
        /// <remarks/>
        observeAmberAlert,
        
        /// <remarks/>
        observeSignals,
        
        /// <remarks/>
        observeSigns,
        
        /// <remarks/>
        onlyTravelIfAbsolutelyNecessary,
        
        /// <remarks/>
        overtakeWithCare,
        
        /// <remarks/>
        pullOverToTheEdgeOfTheRoadway,
        
        /// <remarks/>
        stopAtNextSafePlace,
        
        /// <remarks/>
        stopAtNextServiceArea,
        
        /// <remarks/>
        switchOffEngine,
        
        /// <remarks/>
        switchOffMobilePhonesAndTwoWayRadios,
        
        /// <remarks/>
        testYourBrakes,
        
        /// <remarks/>
        useBusService,
        
        /// <remarks/>
        useFogLights,
        
        /// <remarks/>
        useHazardWarningLights,
        
        /// <remarks/>
        useHeadlights,
        
        /// <remarks/>
        useRailService,
        
        /// <remarks/>
        useTramService,
        
        /// <remarks/>
        useUndergroundService,
        
        /// <remarks/>
        waitForEscortVehicle,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _EquipmentOrSystemFaultTypeEnum {
        
        private string _extendedValueField;
        
        private EquipmentOrSystemFaultTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public EquipmentOrSystemFaultTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum EquipmentOrSystemFaultTypeEnum {
        
        /// <remarks/>
        notWorking,
        
        /// <remarks/>
        outOfService,
        
        /// <remarks/>
        workingIncorrectly,
        
        /// <remarks/>
        workingIntermittently,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _EnvironmentalObstructionTypeEnum {
        
        private string _extendedValueField;
        
        private EnvironmentalObstructionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public EnvironmentalObstructionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum EnvironmentalObstructionTypeEnum {
        
        /// <remarks/>
        avalanches,
        
        /// <remarks/>
        earthquakeDamage,
        
        /// <remarks/>
        fallenTrees,
        
        /// <remarks/>
        fallingIce,
        
        /// <remarks/>
        fallingLightIceOrSnow,
        
        /// <remarks/>
        flashFloods,
        
        /// <remarks/>
        flooding,
        
        /// <remarks/>
        forestFire,
        
        /// <remarks/>
        grassFire,
        
        /// <remarks/>
        landslips,
        
        /// <remarks/>
        mudSlide,
        
        /// <remarks/>
        sewerOverflow,
        
        /// <remarks/>
        rockfalls,
        
        /// <remarks/>
        seriousFire,
        
        /// <remarks/>
        smokeOrFumes,
        
        /// <remarks/>
        stormDamage,
        
        /// <remarks/>
        subsidence,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _DrivingConditionTypeEnum {
        
        private string _extendedValueField;
        
        private DrivingConditionTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public DrivingConditionTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum DrivingConditionTypeEnum {
        
        /// <remarks/>
        impossible,
        
        /// <remarks/>
        hazardous,
        
        /// <remarks/>
        normal,
        
        /// <remarks/>
        passableWithCare,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        veryHazardous,
        
        /// <remarks/>
        winterConditions,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _DisturbanceActivityTypeEnum {
        
        private string _extendedValueField;
        
        private DisturbanceActivityTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public DisturbanceActivityTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum DisturbanceActivityTypeEnum {
        
        /// <remarks/>
        airRaid,
        
        /// <remarks/>
        altercationOfVehicleOccupants,
        
        /// <remarks/>
        assault,
        
        /// <remarks/>
        assetDestruction,
        
        /// <remarks/>
        attack,
        
        /// <remarks/>
        attackOnVehicle,
        
        /// <remarks/>
        blockadeOrBarrier,
        
        /// <remarks/>
        bombAlert,
        
        /// <remarks/>
        crowd,
        
        /// <remarks/>
        demonstration,
        
        /// <remarks/>
        evacuation,
        
        /// <remarks/>
        filterBlockade,
        
        /// <remarks/>
        goSlowOperation,
        
        /// <remarks/>
        gunfireOnRoadway,
        
        /// <remarks/>
        illVehicleOccupants,
        
        /// <remarks/>
        march,
        
        /// <remarks/>
        peopleThrowingObjectsOnTheRoad,
        
        /// <remarks/>
        publicDisturbance,
        
        /// <remarks/>
        radioactiveLeakAlert,
        
        /// <remarks/>
        riot,
        
        /// <remarks/>
        sabotage,
        
        /// <remarks/>
        securityAlert,
        
        /// <remarks/>
        securityIncident,
        
        /// <remarks/>
        sightseersObstructingAccess,
        
        /// <remarks/>
        strike,
        
        /// <remarks/>
        terroristIncident,
        
        /// <remarks/>
        theft,
        
        /// <remarks/>
        toxicCloudAlert,
        
        /// <remarks/>
        unspecifiedAlert,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _ConstructionWorkTypeEnum {
        
        private string _extendedValueField;
        
        private ConstructionWorkTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ConstructionWorkTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum ConstructionWorkTypeEnum {
        
        /// <remarks/>
        blastingWork,
        
        /// <remarks/>
        constructionWork,
        
        /// <remarks/>
        demolitionWork,
        
        /// <remarks/>
        roadImprovementOrUpgrading,
        
        /// <remarks/>
        roadWideningWork,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _AuthorityOperationTypeEnum {
        
        private string _extendedValueField;
        
        private AuthorityOperationTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public AuthorityOperationTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum AuthorityOperationTypeEnum {
        
        /// <remarks/>
        accidentInvestigationWork,
        
        /// <remarks/>
        bombSquadInAction,
        
        /// <remarks/>
        civilEmergency,
        
        /// <remarks/>
        customsOperation,
        
        /// <remarks/>
        juridicalReconstruction,
        
        /// <remarks/>
        policeCheckPoint,
        
        /// <remarks/>
        policeInvestigation,
        
        /// <remarks/>
        roadOperatorCheckPoint,
        
        /// <remarks/>
        snowChainOnBoardOrSnowTyresMountedCheck,
        
        /// <remarks/>
        snowChainOrSnowTyresMountedCheck,
        
        /// <remarks/>
        survey,
        
        /// <remarks/>
        transportOfVip,
        
        /// <remarks/>
        undefinedAuthorityActivity,
        
        /// <remarks/>
        vehicleInspectionCheckPoint,
        
        /// <remarks/>
        vehicleWeighing,
        
        /// <remarks/>
        weighInMotion,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _AnimalPresenceTypeEnum {
        
        private string _extendedValueField;
        
        private AnimalPresenceTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public AnimalPresenceTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum AnimalPresenceTypeEnum {
        
        /// <remarks/>
        animalsOnTheRoad,
        
        /// <remarks/>
        herdOfAnimalsOnTheRoad,
        
        /// <remarks/>
        largeAnimalsOnTheRoad,
        
        /// <remarks/>
        smallAnimalsOnTheRoad,
        
        /// <remarks/>
        wildAnimalsOnTheRoad,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _AccidentTypeEnum {
        
        private string _extendedValueField;
        
        private AccidentTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public AccidentTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum AccidentTypeEnum {
        
        /// <remarks/>
        accident,
        
        /// <remarks/>
        accidentInvolvingHazardousMaterials,
        
        /// <remarks/>
        accidentInvolvingHeavyLorries,
        
        /// <remarks/>
        accidentInvolvingMassTransitVehicle,
        
        /// <remarks/>
        accidentInvolvingPublicTransport,
        
        /// <remarks/>
        accidentInvolvingRadioactiveMaterial,
        
        /// <remarks/>
        accidentInvolvingTrain,
        
        /// <remarks/>
        collision,
        
        /// <remarks/>
        multipleVehicleAccident,
        
        /// <remarks/>
        secondaryAccident,
        
        /// <remarks/>
        seriousInjuryOrFatalAccident,
        
        /// <remarks/>
        vehicleStuckUnderBridge,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _AbnormalTrafficTypeEnum {
        
        private string _extendedValueField;
        
        private AbnormalTrafficTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public AbnormalTrafficTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum AbnormalTrafficTypeEnum {
        
        /// <remarks/>
        stationaryTraffic,
        
        /// <remarks/>
        queuingTraffic,
        
        /// <remarks/>
        slowTraffic,
        
        /// <remarks/>
        heavyTraffic,
        
        /// <remarks/>
        unspecifiedAbnormalTraffic,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class DetailedCauseType {
        
        private _AbnormalTrafficTypeEnum abnormalTrafficTypeField;
        
        private _AccidentTypeEnum[] accidentTypeField;
        
        private _AnimalPresenceTypeEnum animalPresenceTypeField;
        
        private _AuthorityOperationTypeEnum authorityOperationTypeField;
        
        private _ConstructionWorkTypeEnum constructionWorkTypeField;
        
        private _DisturbanceActivityTypeEnum disturbanceActivityTypeField;
        
        private _DrivingConditionTypeEnum drivingConditionTypeField;
        
        private _EnvironmentalObstructionTypeEnum environmentalObstructionTypeField;
        
        private _EquipmentOrSystemFaultTypeEnum equipmentOrSystemFaultTypeField;
        
        private _GeneralInstructionToRoadUsersTypeEnum generalInstructionToRoadUsersTypeField;
        
        private _GeneralNetworkManagementTypeEnum generalNetworkManagementTypeField;
        
        private _InfrastructureDamageTypeEnum infrastructureDamageTypeField;
        
        private _NonWeatherRelatedRoadConditionTypeEnum[] nonWeatherRelatedRoadConditionTypeField;
        
        private _ObstructionTypeEnum[] obstructionTypeField;
        
        private _PoorEnvironmentTypeEnum[] poorEnvironmentTypeField;
        
        private _PublicEventTypeEnum publicEventTypeField;
        
        private _ReroutingManagementTypeEnum[] reroutingManagementTypeField;
        
        private _RoadMaintenanceTypeEnum[] roadMaintenanceTypeField;
        
        private _RoadOperatorServiceDisruptionTypeEnum[] roadOperatorServiceDisruptionTypeField;
        
        private _RoadOrCarriagewayOrLaneManagementTypeEnum roadOrCarriagewayOrLaneManagementTypeField;
        
        private _RoadsideAssistanceTypeEnum roadsideAssistanceTypeField;
        
        private _ServiceDisruptionTypeEnum[] roadsideServiceDisruptionTypeField;
        
        private _SpeedManagementTypeEnum speedManagementTypeField;
        
        private _TransitServiceInformationEnum transitServiceInformationField;
        
        private _VehicleObstructionTypeEnum vehicleObstructionTypeField;
        
        private _WeatherRelatedRoadConditionTypeEnum[] weatherRelatedRoadConditionTypeField;
        
        private _WinterEquipmentManagementTypeEnum winterEquipmentManagementTypeField;
        
        private _ExtensionType _detailedCauseTypeExtensionField;
        
        /// <remarks/>
        public _AbnormalTrafficTypeEnum abnormalTrafficType {
            get {
                return this.abnormalTrafficTypeField;
            }
            set {
                this.abnormalTrafficTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("accidentType")]
        public _AccidentTypeEnum[] accidentType {
            get {
                return this.accidentTypeField;
            }
            set {
                this.accidentTypeField = value;
            }
        }
        
        /// <remarks/>
        public _AnimalPresenceTypeEnum animalPresenceType {
            get {
                return this.animalPresenceTypeField;
            }
            set {
                this.animalPresenceTypeField = value;
            }
        }
        
        /// <remarks/>
        public _AuthorityOperationTypeEnum authorityOperationType {
            get {
                return this.authorityOperationTypeField;
            }
            set {
                this.authorityOperationTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ConstructionWorkTypeEnum constructionWorkType {
            get {
                return this.constructionWorkTypeField;
            }
            set {
                this.constructionWorkTypeField = value;
            }
        }
        
        /// <remarks/>
        public _DisturbanceActivityTypeEnum disturbanceActivityType {
            get {
                return this.disturbanceActivityTypeField;
            }
            set {
                this.disturbanceActivityTypeField = value;
            }
        }
        
        /// <remarks/>
        public _DrivingConditionTypeEnum drivingConditionType {
            get {
                return this.drivingConditionTypeField;
            }
            set {
                this.drivingConditionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _EnvironmentalObstructionTypeEnum environmentalObstructionType {
            get {
                return this.environmentalObstructionTypeField;
            }
            set {
                this.environmentalObstructionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _EquipmentOrSystemFaultTypeEnum equipmentOrSystemFaultType {
            get {
                return this.equipmentOrSystemFaultTypeField;
            }
            set {
                this.equipmentOrSystemFaultTypeField = value;
            }
        }
        
        /// <remarks/>
        public _GeneralInstructionToRoadUsersTypeEnum generalInstructionToRoadUsersType {
            get {
                return this.generalInstructionToRoadUsersTypeField;
            }
            set {
                this.generalInstructionToRoadUsersTypeField = value;
            }
        }
        
        /// <remarks/>
        public _GeneralNetworkManagementTypeEnum generalNetworkManagementType {
            get {
                return this.generalNetworkManagementTypeField;
            }
            set {
                this.generalNetworkManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public _InfrastructureDamageTypeEnum infrastructureDamageType {
            get {
                return this.infrastructureDamageTypeField;
            }
            set {
                this.infrastructureDamageTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("nonWeatherRelatedRoadConditionType")]
        public _NonWeatherRelatedRoadConditionTypeEnum[] nonWeatherRelatedRoadConditionType {
            get {
                return this.nonWeatherRelatedRoadConditionTypeField;
            }
            set {
                this.nonWeatherRelatedRoadConditionTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("obstructionType")]
        public _ObstructionTypeEnum[] obstructionType {
            get {
                return this.obstructionTypeField;
            }
            set {
                this.obstructionTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("poorEnvironmentType")]
        public _PoorEnvironmentTypeEnum[] poorEnvironmentType {
            get {
                return this.poorEnvironmentTypeField;
            }
            set {
                this.poorEnvironmentTypeField = value;
            }
        }
        
        /// <remarks/>
        public _PublicEventTypeEnum publicEventType {
            get {
                return this.publicEventTypeField;
            }
            set {
                this.publicEventTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("reroutingManagementType")]
        public _ReroutingManagementTypeEnum[] reroutingManagementType {
            get {
                return this.reroutingManagementTypeField;
            }
            set {
                this.reroutingManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("roadMaintenanceType")]
        public _RoadMaintenanceTypeEnum[] roadMaintenanceType {
            get {
                return this.roadMaintenanceTypeField;
            }
            set {
                this.roadMaintenanceTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("roadOperatorServiceDisruptionType")]
        public _RoadOperatorServiceDisruptionTypeEnum[] roadOperatorServiceDisruptionType {
            get {
                return this.roadOperatorServiceDisruptionTypeField;
            }
            set {
                this.roadOperatorServiceDisruptionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _RoadOrCarriagewayOrLaneManagementTypeEnum roadOrCarriagewayOrLaneManagementType {
            get {
                return this.roadOrCarriagewayOrLaneManagementTypeField;
            }
            set {
                this.roadOrCarriagewayOrLaneManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public _RoadsideAssistanceTypeEnum roadsideAssistanceType {
            get {
                return this.roadsideAssistanceTypeField;
            }
            set {
                this.roadsideAssistanceTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("roadsideServiceDisruptionType")]
        public _ServiceDisruptionTypeEnum[] roadsideServiceDisruptionType {
            get {
                return this.roadsideServiceDisruptionTypeField;
            }
            set {
                this.roadsideServiceDisruptionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _SpeedManagementTypeEnum speedManagementType {
            get {
                return this.speedManagementTypeField;
            }
            set {
                this.speedManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public _TransitServiceInformationEnum transitServiceInformation {
            get {
                return this.transitServiceInformationField;
            }
            set {
                this.transitServiceInformationField = value;
            }
        }
        
        /// <remarks/>
        public _VehicleObstructionTypeEnum vehicleObstructionType {
            get {
                return this.vehicleObstructionTypeField;
            }
            set {
                this.vehicleObstructionTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("weatherRelatedRoadConditionType")]
        public _WeatherRelatedRoadConditionTypeEnum[] weatherRelatedRoadConditionType {
            get {
                return this.weatherRelatedRoadConditionTypeField;
            }
            set {
                this.weatherRelatedRoadConditionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _WinterEquipmentManagementTypeEnum winterEquipmentManagementType {
            get {
                return this.winterEquipmentManagementTypeField;
            }
            set {
                this.winterEquipmentManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _detailedCauseTypeExtension {
            get {
                return this._detailedCauseTypeExtensionField;
            }
            set {
                this._detailedCauseTypeExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _CauseTypeEnum {
        
        private string _extendedValueField;
        
        private CauseTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public CauseTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum CauseTypeEnum {
        
        /// <remarks/>
        abnormalTraffic,
        
        /// <remarks/>
        accident,
        
        /// <remarks/>
        animalPresence,
        
        /// <remarks/>
        authorityOperation,
        
        /// <remarks/>
        constructionWork,
        
        /// <remarks/>
        disturbance,
        
        /// <remarks/>
        drivingConditions,
        
        /// <remarks/>
        environmentalObstruction,
        
        /// <remarks/>
        equipmentOrSystemFault,
        
        /// <remarks/>
        infrastructureDamageObstruction,
        
        /// <remarks/>
        instructionToRoadUsers,
        
        /// <remarks/>
        networkManagement,
        
        /// <remarks/>
        nonWeatherRelatedRoadConditions,
        
        /// <remarks/>
        obstruction,
        
        /// <remarks/>
        poorEnvironment,
        
        /// <remarks/>
        publicEvent,
        
        /// <remarks/>
        rerouting,
        
        /// <remarks/>
        roadMaintenance,
        
        /// <remarks/>
        roadOperatorServiceDisruption,
        
        /// <remarks/>
        roadOrCarriagewayOrLaneManagement,
        
        /// <remarks/>
        roadsideAssistance,
        
        /// <remarks/>
        roadsideServiceDisruption,
        
        /// <remarks/>
        speedManagement,
        
        /// <remarks/>
        transitServiceDisruption,
        
        /// <remarks/>
        vehicleObstruction,
        
        /// <remarks/>
        weatherRelatedRoadConditions,
        
        /// <remarks/>
        winterEquipmentManagement,
        
        /// <remarks/>
        earlierEvent,
        
        /// <remarks/>
        earlierIncident,
        
        /// <remarks/>
        holidayTraffic,
        
        /// <remarks/>
        problemsAtBorderPost,
        
        /// <remarks/>
        problemsAtCustomPost,
        
        /// <remarks/>
        problemsOnLocalRoads,
        
        /// <remarks/>
        roadsideEvent,
        
        /// <remarks/>
        rubberNecking,
        
        /// <remarks/>
        technicalProblems,
        
        /// <remarks/>
        vandalism,
        
        /// <remarks/>
        other,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Cause {
        
        private MultilingualString causeDescriptionField;
        
        private _CauseTypeEnum causeTypeField;
        
        private DetailedCauseType detailedCauseTypeField;
        
        private SituationRecordReference managedCauseField;
        
        private _ExtensionType _causeExtensionField;
        
        /// <remarks/>
        public MultilingualString causeDescription {
            get {
                return this.causeDescriptionField;
            }
            set {
                this.causeDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public _CauseTypeEnum causeType {
            get {
                return this.causeTypeField;
            }
            set {
                this.causeTypeField = value;
            }
        }
        
        /// <remarks/>
        public DetailedCauseType detailedCauseType {
            get {
                return this.detailedCauseTypeField;
            }
            set {
                this.detailedCauseTypeField = value;
            }
        }
        
        /// <remarks/>
        public SituationRecordReference managedCause {
            get {
                return this.managedCauseField;
            }
            set {
                this.managedCauseField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _causeExtension {
            get {
                return this._causeExtensionField;
            }
            set {
                this._causeExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Delays {
        
        private float delayTimeValueField;
        
        private _ExtensionType _delaysExtensionField;
        
        /// <remarks/>
        public float delayTimeValue {
            get {
                return this.delayTimeValueField;
            }
            set {
                this.delayTimeValueField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _delaysExtension {
            get {
                return this._delaysExtensionField;
            }
            set {
                this._delaysExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Impact {
        
        private float capacityRemainingField;
        
        private bool capacityRemainingFieldSpecified;
        
        private string numberOfLanesRestrictedField;
        
        private string numberOfOperationalLanesField;
        
        private float residualLaneWidthField;
        
        private bool residualLaneWidthFieldSpecified;
        
        private float residualRoadWidthField;
        
        private bool residualRoadWidthFieldSpecified;
        
        private Delays delaysField;
        
        private _ExtensionType _impactExtensionField;
        
        /// <remarks/>
        public float capacityRemaining {
            get {
                return this.capacityRemainingField;
            }
            set {
                this.capacityRemainingField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool capacityRemainingSpecified {
            get {
                return this.capacityRemainingFieldSpecified;
            }
            set {
                this.capacityRemainingFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string numberOfLanesRestricted {
            get {
                return this.numberOfLanesRestrictedField;
            }
            set {
                this.numberOfLanesRestrictedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string numberOfOperationalLanes {
            get {
                return this.numberOfOperationalLanesField;
            }
            set {
                this.numberOfOperationalLanesField = value;
            }
        }
        
        /// <remarks/>
        public float residualLaneWidth {
            get {
                return this.residualLaneWidthField;
            }
            set {
                this.residualLaneWidthField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool residualLaneWidthSpecified {
            get {
                return this.residualLaneWidthFieldSpecified;
            }
            set {
                this.residualLaneWidthFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public float residualRoadWidth {
            get {
                return this.residualRoadWidthField;
            }
            set {
                this.residualRoadWidthField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool residualRoadWidthSpecified {
            get {
                return this.residualRoadWidthFieldSpecified;
            }
            set {
                this.residualRoadWidthFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public Delays delays {
            get {
                return this.delaysField;
            }
            set {
                this.delaysField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _impactExtension {
            get {
                return this._impactExtensionField;
            }
            set {
                this._impactExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _InstanceOfDayEnum {
        
        private string _extendedValueField;
        
        private InstanceOfDayEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public InstanceOfDayEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum InstanceOfDayEnum {
        
        /// <remarks/>
        firstInstance,
        
        /// <remarks/>
        secondInstance,
        
        /// <remarks/>
        thirdInstance,
        
        /// <remarks/>
        fourthInstance,
        
        /// <remarks/>
        fifthInstance,
        
        /// <remarks/>
        lastInstance,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _MonthOfYearEnum {
        
        private string _extendedValueField;
        
        private MonthOfYearEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public MonthOfYearEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum MonthOfYearEnum {
        
        /// <remarks/>
        january,
        
        /// <remarks/>
        february,
        
        /// <remarks/>
        march,
        
        /// <remarks/>
        april,
        
        /// <remarks/>
        may,
        
        /// <remarks/>
        june,
        
        /// <remarks/>
        july,
        
        /// <remarks/>
        august,
        
        /// <remarks/>
        september,
        
        /// <remarks/>
        october,
        
        /// <remarks/>
        november,
        
        /// <remarks/>
        december,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _DayEnum {
        
        private string _extendedValueField;
        
        private DayEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public DayEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum DayEnum {
        
        /// <remarks/>
        monday,
        
        /// <remarks/>
        tuesday,
        
        /// <remarks/>
        wednesday,
        
        /// <remarks/>
        thursday,
        
        /// <remarks/>
        friday,
        
        /// <remarks/>
        saturday,
        
        /// <remarks/>
        sunday,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(InstanceOfDayWithinMonth))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class DayWeekMonth {
        
        private _DayEnum[] applicableDayField;
        
        private _MonthOfYearEnum[] applicableMonthField;
        
        private _ExtensionType _dayWeekMonthExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("applicableDay")]
        public _DayEnum[] applicableDay {
            get {
                return this.applicableDayField;
            }
            set {
                this.applicableDayField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("applicableMonth")]
        public _MonthOfYearEnum[] applicableMonth {
            get {
                return this.applicableMonthField;
            }
            set {
                this.applicableMonthField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _dayWeekMonthExtension {
            get {
                return this._dayWeekMonthExtensionField;
            }
            set {
                this._dayWeekMonthExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class InstanceOfDayWithinMonth : DayWeekMonth {
        
        private _InstanceOfDayEnum[] applicableInstanceOfDayWithinMonthField;
        
        private _ExtensionType _instanceOfDayWithinMonthExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("applicableInstanceOfDayWithinMonth")]
        public _InstanceOfDayEnum[] applicableInstanceOfDayWithinMonth {
            get {
                return this.applicableInstanceOfDayWithinMonthField;
            }
            set {
                this.applicableInstanceOfDayWithinMonthField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _instanceOfDayWithinMonthExtension {
            get {
                return this._instanceOfDayWithinMonthExtensionField;
            }
            set {
                this._instanceOfDayWithinMonthExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class TimePeriodOfDay {
        
        private System.DateTime startTimeOfPeriodField;
        
        private System.DateTime endTimeOfPeriodField;
        
        private _ExtensionType _timePeriodOfDayExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="time")]
        public System.DateTime startTimeOfPeriod {
            get {
                return this.startTimeOfPeriodField;
            }
            set {
                this.startTimeOfPeriodField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="time")]
        public System.DateTime endTimeOfPeriod {
            get {
                return this.endTimeOfPeriodField;
            }
            set {
                this.endTimeOfPeriodField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _timePeriodOfDayExtension {
            get {
                return this._timePeriodOfDayExtensionField;
            }
            set {
                this._timePeriodOfDayExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class Period {
        
        private System.DateTime startOfPeriodField;
        
        private bool startOfPeriodFieldSpecified;
        
        private System.DateTime endOfPeriodField;
        
        private bool endOfPeriodFieldSpecified;
        
        private TimePeriodOfDay[] recurringTimePeriodOfDayField;
        
        private DayWeekMonth[] recurringDayWeekMonthPeriodField;
        
        private _ExtensionType _periodExtensionField;
        
        /// <remarks/>
        public System.DateTime startOfPeriod {
            get {
                return this.startOfPeriodField;
            }
            set {
                this.startOfPeriodField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool startOfPeriodSpecified {
            get {
                return this.startOfPeriodFieldSpecified;
            }
            set {
                this.startOfPeriodFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime endOfPeriod {
            get {
                return this.endOfPeriodField;
            }
            set {
                this.endOfPeriodField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool endOfPeriodSpecified {
            get {
                return this.endOfPeriodFieldSpecified;
            }
            set {
                this.endOfPeriodFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("recurringTimePeriodOfDay")]
        public TimePeriodOfDay[] recurringTimePeriodOfDay {
            get {
                return this.recurringTimePeriodOfDayField;
            }
            set {
                this.recurringTimePeriodOfDayField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("recurringDayWeekMonthPeriod")]
        public DayWeekMonth[] recurringDayWeekMonthPeriod {
            get {
                return this.recurringDayWeekMonthPeriodField;
            }
            set {
                this.recurringDayWeekMonthPeriodField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _periodExtension {
            get {
                return this._periodExtensionField;
            }
            set {
                this._periodExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class OverallPeriod {
        
        private System.DateTime overallStartTimeField;
        
        private System.DateTime overallEndTimeField;
        
        private bool overallEndTimeFieldSpecified;
        
        private Period[] validPeriodField;
        
        private _ExtensionType _overallPeriodExtensionField;
        
        /// <remarks/>
        public System.DateTime overallStartTime {
            get {
                return this.overallStartTimeField;
            }
            set {
                this.overallStartTimeField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime overallEndTime {
            get {
                return this.overallEndTimeField;
            }
            set {
                this.overallEndTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool overallEndTimeSpecified {
            get {
                return this.overallEndTimeFieldSpecified;
            }
            set {
                this.overallEndTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("validPeriod")]
        public Period[] validPeriod {
            get {
                return this.validPeriodField;
            }
            set {
                this.validPeriodField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _overallPeriodExtension {
            get {
                return this._overallPeriodExtensionField;
            }
            set {
                this._overallPeriodExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _ValidityStatusEnum {
        
        private string _extendedValueField;
        
        private ValidityStatusEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ValidityStatusEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum ValidityStatusEnum {
        
        /// <remarks/>
        active,
        
        /// <remarks/>
        planned,
        
        /// <remarks/>
        suspended,
        
        /// <remarks/>
        definedByValidityTimeSpec,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class Validity {
        
        private _ValidityStatusEnum validityStatusField;
        
        private OverallPeriod validityTimeSpecificationField;
        
        private _ExtensionType _validityExtensionField;
        
        /// <remarks/>
        public _ValidityStatusEnum validityStatus {
            get {
                return this.validityStatusField;
            }
            set {
                this.validityStatusField = value;
            }
        }
        
        /// <remarks/>
        public OverallPeriod validityTimeSpecification {
            get {
                return this.validityTimeSpecificationField;
            }
            set {
                this.validityTimeSpecificationField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _validityExtension {
            get {
                return this._validityExtensionField;
            }
            set {
                this._validityExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _SourceTypeEnum {
        
        private string _extendedValueField;
        
        private SourceTypeEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public SourceTypeEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum SourceTypeEnum {
        
        /// <remarks/>
        automobileClubPatrol,
        
        /// <remarks/>
        cameraObservation,
        
        /// <remarks/>
        freightVehicleOperator,
        
        /// <remarks/>
        inductionLoopMonitoringStation,
        
        /// <remarks/>
        infraredMonitoringStation,
        
        /// <remarks/>
        microwaveMonitoringStation,
        
        /// <remarks/>
        mobileTelephoneCaller,
        
        /// <remarks/>
        nonPoliceEmergencyServicePatrol,
        
        /// <remarks/>
        otherInformation,
        
        /// <remarks/>
        otherOfficialVehicle,
        
        /// <remarks/>
        policePatrol,
        
        /// <remarks/>
        privateBreakdownService,
        
        /// <remarks/>
        publicAndPrivateUtilities,
        
        /// <remarks/>
        registeredMotoristObserver,
        
        /// <remarks/>
        roadAuthorities,
        
        /// <remarks/>
        roadOperatorPatrol,
        
        /// <remarks/>
        roadsideTelephoneCaller,
        
        /// <remarks/>
        spotterAircraft,
        
        /// <remarks/>
        trafficMonitoringStation,
        
        /// <remarks/>
        transitOperator,
        
        /// <remarks/>
        vehicleProbeMeasurement,
        
        /// <remarks/>
        videoProcessingMonitoringStation,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class Source {
        
        private string sourceCountryField;
        
        private string sourceIdentificationField;
        
        private MultilingualString sourceNameField;
        
        private _SourceTypeEnum sourceTypeField;
        
        private bool reliableField;
        
        private bool reliableFieldSpecified;
        
        private _ExtensionType _sourceExtensionField;
        
        /// <remarks/>
        public string sourceCountry {
            get {
                return this.sourceCountryField;
            }
            set {
                this.sourceCountryField = value;
            }
        }
        
        /// <remarks/>
        public string sourceIdentification {
            get {
                return this.sourceIdentificationField;
            }
            set {
                this.sourceIdentificationField = value;
            }
        }
        
        /// <remarks/>
        public MultilingualString sourceName {
            get {
                return this.sourceNameField;
            }
            set {
                this.sourceNameField = value;
            }
        }
        
        /// <remarks/>
        public _SourceTypeEnum sourceType {
            get {
                return this.sourceTypeField;
            }
            set {
                this.sourceTypeField = value;
            }
        }
        
        /// <remarks/>
        public bool reliable {
            get {
                return this.reliableField;
            }
            set {
                this.reliableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool reliableSpecified {
            get {
                return this.reliableFieldSpecified;
            }
            set {
                this.reliableFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _sourceExtension {
            get {
                return this._sourceExtensionField;
            }
            set {
                this._sourceExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _ProbabilityOfOccurrenceEnum {
        
        private string _extendedValueField;
        
        private ProbabilityOfOccurrenceEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ProbabilityOfOccurrenceEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum ProbabilityOfOccurrenceEnum {
        
        /// <remarks/>
        certain,
        
        /// <remarks/>
        probable,
        
        /// <remarks/>
        riskOf,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _ConfidentialityValueEnum {
        
        private string _extendedValueField;
        
        private ConfidentialityValueEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public ConfidentialityValueEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum ConfidentialityValueEnum {
        
        /// <remarks/>
        internalUse,
        
        /// <remarks/>
        noRestriction,
        
        /// <remarks/>
        restrictedToAuthorities,
        
        /// <remarks/>
        restrictedToAuthoritiesAndTrafficOperators,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TrafficElement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Obstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VehicleObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(InfrastructureDamageObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EnvironmentalObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AnimalPresenceObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Conditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadSurfaceConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonWeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PoorEnvironmentConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Activity))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DisturbanceActivity))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AuthorityOperation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Accident))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbnormalTraffic))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceInformation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TransitInformation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceDisruption))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadOperatorServiceDisruption))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OperatorAction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Roadworks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MaintenanceWorks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConstructionWorks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NetworkManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SpeedManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadOrCarriagewayOrLaneManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralNetworkManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralInstructionOrMessageToRoadUsers))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GenericSituationRecord))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class SituationRecord {
        
        private string situationRecordCreationReferenceField;
        
        private System.DateTime situationRecordCreationTimeField;
        
        private System.DateTime situationRecordObservationTimeField;
        
        private bool situationRecordObservationTimeFieldSpecified;
        
        private System.DateTime situationRecordVersionTimeField;
        
        private System.DateTime situationRecordFirstSupplierVersionTimeField;
        
        private bool situationRecordFirstSupplierVersionTimeFieldSpecified;
        
        private _ConfidentialityValueEnum confidentialityOverrideField;
        
        private _ProbabilityOfOccurrenceEnum probabilityOfOccurrenceField;
        
        private _SeverityEnum severityField;
        
        private bool safetyRelatedMessageField;
        
        private Source sourceField;
        
        private Validity validityField;
        
        private Impact impactField;
        
        private Cause causeField;
        
        private Comment[] generalPublicCommentField;
        
        private Comment[] nonGeneralPublicCommentField;
        
        private UrlLink[] urlLinkField;
        
        private LocationReference locationReferenceField;
        
        private InternationalIdentifier informationManagerOverrideField;
        
        private Impact impactOnOppositeDirectionField;
        
        private _ExtensionType _situationRecordExtensionField;
        
        private string idField;
        
        private string versionField;
        
        /// <remarks/>
        public string situationRecordCreationReference {
            get {
                return this.situationRecordCreationReferenceField;
            }
            set {
                this.situationRecordCreationReferenceField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime situationRecordCreationTime {
            get {
                return this.situationRecordCreationTimeField;
            }
            set {
                this.situationRecordCreationTimeField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime situationRecordObservationTime {
            get {
                return this.situationRecordObservationTimeField;
            }
            set {
                this.situationRecordObservationTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool situationRecordObservationTimeSpecified {
            get {
                return this.situationRecordObservationTimeFieldSpecified;
            }
            set {
                this.situationRecordObservationTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime situationRecordVersionTime {
            get {
                return this.situationRecordVersionTimeField;
            }
            set {
                this.situationRecordVersionTimeField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime situationRecordFirstSupplierVersionTime {
            get {
                return this.situationRecordFirstSupplierVersionTimeField;
            }
            set {
                this.situationRecordFirstSupplierVersionTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool situationRecordFirstSupplierVersionTimeSpecified {
            get {
                return this.situationRecordFirstSupplierVersionTimeFieldSpecified;
            }
            set {
                this.situationRecordFirstSupplierVersionTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _ConfidentialityValueEnum confidentialityOverride {
            get {
                return this.confidentialityOverrideField;
            }
            set {
                this.confidentialityOverrideField = value;
            }
        }
        
        /// <remarks/>
        public _ProbabilityOfOccurrenceEnum probabilityOfOccurrence {
            get {
                return this.probabilityOfOccurrenceField;
            }
            set {
                this.probabilityOfOccurrenceField = value;
            }
        }
        
        /// <remarks/>
        public _SeverityEnum severity {
            get {
                return this.severityField;
            }
            set {
                this.severityField = value;
            }
        }
        
        /// <remarks/>
        public bool safetyRelatedMessage {
            get {
                return this.safetyRelatedMessageField;
            }
            set {
                this.safetyRelatedMessageField = value;
            }
        }
        
        /// <remarks/>
        public Source source {
            get {
                return this.sourceField;
            }
            set {
                this.sourceField = value;
            }
        }
        
        /// <remarks/>
        public Validity validity {
            get {
                return this.validityField;
            }
            set {
                this.validityField = value;
            }
        }
        
        /// <remarks/>
        public Impact impact {
            get {
                return this.impactField;
            }
            set {
                this.impactField = value;
            }
        }
        
        /// <remarks/>
        public Cause cause {
            get {
                return this.causeField;
            }
            set {
                this.causeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("generalPublicComment")]
        public Comment[] generalPublicComment {
            get {
                return this.generalPublicCommentField;
            }
            set {
                this.generalPublicCommentField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("nonGeneralPublicComment")]
        public Comment[] nonGeneralPublicComment {
            get {
                return this.nonGeneralPublicCommentField;
            }
            set {
                this.nonGeneralPublicCommentField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("urlLink")]
        public UrlLink[] urlLink {
            get {
                return this.urlLinkField;
            }
            set {
                this.urlLinkField = value;
            }
        }
        
        /// <remarks/>
        public LocationReference locationReference {
            get {
                return this.locationReferenceField;
            }
            set {
                this.locationReferenceField = value;
            }
        }
        
        /// <remarks/>
        public InternationalIdentifier informationManagerOverride {
            get {
                return this.informationManagerOverrideField;
            }
            set {
                this.informationManagerOverrideField = value;
            }
        }
        
        /// <remarks/>
        public Impact impactOnOppositeDirection {
            get {
                return this.impactOnOppositeDirectionField;
            }
            set {
                this.impactOnOppositeDirectionField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _situationRecordExtension {
            get {
                return this._situationRecordExtensionField;
            }
            set {
                this._situationRecordExtensionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string version {
            get {
                return this.versionField;
            }
            set {
                this.versionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class _SeverityEnum {
        
        private string _extendedValueField;
        
        private SeverityEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public SeverityEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public enum SeverityEnum {
        
        /// <remarks/>
        highest,
        
        /// <remarks/>
        high,
        
        /// <remarks/>
        medium,
        
        /// <remarks/>
        low,
        
        /// <remarks/>
        lowest,
        
        /// <remarks/>
        none,
        
        /// <remarks/>
        unknown,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Obstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VehicleObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(InfrastructureDamageObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EnvironmentalObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AnimalPresenceObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Conditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadSurfaceConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonWeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PoorEnvironmentConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Activity))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DisturbanceActivity))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AuthorityOperation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Accident))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbnormalTraffic))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class TrafficElement : SituationRecord {
        
        private _TrafficConstrictionTypeEnum trafficConstrictionTypeField;
        
        private _ExtensionType _trafficElementExtensionField;
        
        /// <remarks/>
        public _TrafficConstrictionTypeEnum trafficConstrictionType {
            get {
                return this.trafficConstrictionTypeField;
            }
            set {
                this.trafficConstrictionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _trafficElementExtension {
            get {
                return this._trafficElementExtensionField;
            }
            set {
                this._trafficElementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VehicleObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(InfrastructureDamageObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EnvironmentalObstruction))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AnimalPresenceObstruction))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class Obstruction : TrafficElement {
        
        private _ExtensionType _obstructionExtensionField;
        
        /// <remarks/>
        public _ExtensionType _obstructionExtension {
            get {
                return this._obstructionExtensionField;
            }
            set {
                this._obstructionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class VehicleObstruction : Obstruction {
        
        private _VehicleObstructionTypeEnum vehicleObstructionTypeField;
        
        private _VehicleTypeEnum involvedVehicleTypeField;
        
        private _ExtensionType _vehicleObstructionExtensionField;
        
        /// <remarks/>
        public _VehicleObstructionTypeEnum vehicleObstructionType {
            get {
                return this.vehicleObstructionTypeField;
            }
            set {
                this.vehicleObstructionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _VehicleTypeEnum involvedVehicleType {
            get {
                return this.involvedVehicleTypeField;
            }
            set {
                this.involvedVehicleTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _vehicleObstructionExtension {
            get {
                return this._vehicleObstructionExtensionField;
            }
            set {
                this._vehicleObstructionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class InfrastructureDamageObstruction : Obstruction {
        
        private _InfrastructureDamageTypeEnum infrastructureDamageTypeField;
        
        private _ExtensionType _infrastructureDamageObstructionExtensionField;
        
        /// <remarks/>
        public _InfrastructureDamageTypeEnum infrastructureDamageType {
            get {
                return this.infrastructureDamageTypeField;
            }
            set {
                this.infrastructureDamageTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _infrastructureDamageObstructionExtension {
            get {
                return this._infrastructureDamageObstructionExtensionField;
            }
            set {
                this._infrastructureDamageObstructionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class GeneralObstruction : Obstruction {
        
        private _ObstructionTypeEnum[] obstructionTypeField;
        
        private _ExtensionType _generalObstructionExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("obstructionType")]
        public _ObstructionTypeEnum[] obstructionType {
            get {
                return this.obstructionTypeField;
            }
            set {
                this.obstructionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _generalObstructionExtension {
            get {
                return this._generalObstructionExtensionField;
            }
            set {
                this._generalObstructionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class EnvironmentalObstruction : Obstruction {
        
        private _EnvironmentalObstructionTypeEnum environmentalObstructionTypeField;
        
        private _ExtensionType _environmentalObstructionExtensionField;
        
        /// <remarks/>
        public _EnvironmentalObstructionTypeEnum environmentalObstructionType {
            get {
                return this.environmentalObstructionTypeField;
            }
            set {
                this.environmentalObstructionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _environmentalObstructionExtension {
            get {
                return this._environmentalObstructionExtensionField;
            }
            set {
                this._environmentalObstructionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class AnimalPresenceObstruction : Obstruction {
        
        private _AnimalPresenceTypeEnum animalPresenceTypeField;
        
        private _ExtensionType _animalPresenceObstructionExtensionField;
        
        /// <remarks/>
        public _AnimalPresenceTypeEnum animalPresenceType {
            get {
                return this.animalPresenceTypeField;
            }
            set {
                this.animalPresenceTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _animalPresenceObstructionExtension {
            get {
                return this._animalPresenceObstructionExtensionField;
            }
            set {
                this._animalPresenceObstructionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadSurfaceConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonWeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PoorEnvironmentConditions))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Conditions : TrafficElement {
        
        private _ExtensionType _conditionsExtensionField;
        
        /// <remarks/>
        public _ExtensionType _conditionsExtension {
            get {
                return this._conditionsExtensionField;
            }
            set {
                this._conditionsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WeatherRelatedRoadConditions))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonWeatherRelatedRoadConditions))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class RoadSurfaceConditions : Conditions {
        
        private _ExtensionType _roadSurfaceConditionsExtensionField;
        
        /// <remarks/>
        public _ExtensionType _roadSurfaceConditionsExtension {
            get {
                return this._roadSurfaceConditionsExtensionField;
            }
            set {
                this._roadSurfaceConditionsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class WeatherRelatedRoadConditions : RoadSurfaceConditions {
        
        private _WeatherRelatedRoadConditionTypeEnum[] weatherRelatedRoadConditionTypeField;
        
        private _ExtensionType _weatherRelatedRoadConditionsExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("weatherRelatedRoadConditionType")]
        public _WeatherRelatedRoadConditionTypeEnum[] weatherRelatedRoadConditionType {
            get {
                return this.weatherRelatedRoadConditionTypeField;
            }
            set {
                this.weatherRelatedRoadConditionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _weatherRelatedRoadConditionsExtension {
            get {
                return this._weatherRelatedRoadConditionsExtensionField;
            }
            set {
                this._weatherRelatedRoadConditionsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class NonWeatherRelatedRoadConditions : RoadSurfaceConditions {
        
        private _NonWeatherRelatedRoadConditionTypeEnum[] nonWeatherRelatedRoadConditionTypeField;
        
        private _ExtensionType _nonWeatherRelatedRoadConditionsExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("nonWeatherRelatedRoadConditionType")]
        public _NonWeatherRelatedRoadConditionTypeEnum[] nonWeatherRelatedRoadConditionType {
            get {
                return this.nonWeatherRelatedRoadConditionTypeField;
            }
            set {
                this.nonWeatherRelatedRoadConditionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _nonWeatherRelatedRoadConditionsExtension {
            get {
                return this._nonWeatherRelatedRoadConditionsExtensionField;
            }
            set {
                this._nonWeatherRelatedRoadConditionsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class PoorEnvironmentConditions : Conditions {
        
        private _PoorEnvironmentTypeEnum[] poorEnvironmentTypeField;
        
        private _ExtensionType _poorEnvironmentConditionsExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("poorEnvironmentType")]
        public _PoorEnvironmentTypeEnum[] poorEnvironmentType {
            get {
                return this.poorEnvironmentTypeField;
            }
            set {
                this.poorEnvironmentTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _poorEnvironmentConditionsExtension {
            get {
                return this._poorEnvironmentConditionsExtensionField;
            }
            set {
                this._poorEnvironmentConditionsExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DisturbanceActivity))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AuthorityOperation))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class Activity : TrafficElement {
        
        private _ExtensionType _activityExtensionField;
        
        /// <remarks/>
        public _ExtensionType _activityExtension {
            get {
                return this._activityExtensionField;
            }
            set {
                this._activityExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class DisturbanceActivity : Activity {
        
        private _DisturbanceActivityTypeEnum disturbanceActivityTypeField;
        
        private _ExtensionType _disturbanceActivityExtensionField;
        
        /// <remarks/>
        public _DisturbanceActivityTypeEnum disturbanceActivityType {
            get {
                return this.disturbanceActivityTypeField;
            }
            set {
                this.disturbanceActivityTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _disturbanceActivityExtension {
            get {
                return this._disturbanceActivityExtensionField;
            }
            set {
                this._disturbanceActivityExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class AuthorityOperation : Activity {
        
        private _AuthorityOperationTypeEnum authorityOperationTypeField;
        
        private _ExtensionType _authorityOperationExtensionField;
        
        /// <remarks/>
        public _AuthorityOperationTypeEnum authorityOperationType {
            get {
                return this.authorityOperationTypeField;
            }
            set {
                this.authorityOperationTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _authorityOperationExtension {
            get {
                return this._authorityOperationExtensionField;
            }
            set {
                this._authorityOperationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Accident : TrafficElement {
        
        private _AccidentTypeEnum[] accidentTypeField;
        
        private _CollisionTypeEnum collisionTypeField;
        
        private Vehicle[] vehicleInvolvedField;
        
        private _ExtensionType _accidentExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("accidentType")]
        public _AccidentTypeEnum[] accidentType {
            get {
                return this.accidentTypeField;
            }
            set {
                this.accidentTypeField = value;
            }
        }
        
        /// <remarks/>
        public _CollisionTypeEnum collisionType {
            get {
                return this.collisionTypeField;
            }
            set {
                this.collisionTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("vehicleInvolved")]
        public Vehicle[] vehicleInvolved {
            get {
                return this.vehicleInvolvedField;
            }
            set {
                this.vehicleInvolvedField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _accidentExtension {
            get {
                return this._accidentExtensionField;
            }
            set {
                this._accidentExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class AbnormalTraffic : TrafficElement {
        
        private _AbnormalTrafficTypeEnum abnormalTrafficTypeField;
        
        private string queueLengthField;
        
        private _ExtensionType _abnormalTrafficExtensionField;
        
        /// <remarks/>
        public _AbnormalTrafficTypeEnum abnormalTrafficType {
            get {
                return this.abnormalTrafficTypeField;
            }
            set {
                this.abnormalTrafficTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")]
        public string queueLength {
            get {
                return this.queueLengthField;
            }
            set {
                this.queueLengthField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _abnormalTrafficExtension {
            get {
                return this._abnormalTrafficExtensionField;
            }
            set {
                this._abnormalTrafficExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TransitInformation))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceDisruption))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadOperatorServiceDisruption))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class ServiceInformation : SituationRecord {
        
        private _ExtensionType _serviceInformationExtensionField;
        
        /// <remarks/>
        public _ExtensionType _serviceInformationExtension {
            get {
                return this._serviceInformationExtensionField;
            }
            set {
                this._serviceInformationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class TransitInformation : ServiceInformation {
        
        private MultilingualString journeyDestinationField;
        
        private MultilingualString journeyOriginField;
        
        private string journeyReferenceField;
        
        private _TransitServiceInformationEnum transitServiceInformationField;
        
        private _TransitServiceTypeEnum transitServiceTypeField;
        
        private System.DateTime scheduledDepartureTimeField;
        
        private bool scheduledDepartureTimeFieldSpecified;
        
        private _ExtensionType _transitInformationExtensionField;
        
        /// <remarks/>
        public MultilingualString journeyDestination {
            get {
                return this.journeyDestinationField;
            }
            set {
                this.journeyDestinationField = value;
            }
        }
        
        /// <remarks/>
        public MultilingualString journeyOrigin {
            get {
                return this.journeyOriginField;
            }
            set {
                this.journeyOriginField = value;
            }
        }
        
        /// <remarks/>
        public string journeyReference {
            get {
                return this.journeyReferenceField;
            }
            set {
                this.journeyReferenceField = value;
            }
        }
        
        /// <remarks/>
        public _TransitServiceInformationEnum transitServiceInformation {
            get {
                return this.transitServiceInformationField;
            }
            set {
                this.transitServiceInformationField = value;
            }
        }
        
        /// <remarks/>
        public _TransitServiceTypeEnum transitServiceType {
            get {
                return this.transitServiceTypeField;
            }
            set {
                this.transitServiceTypeField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime scheduledDepartureTime {
            get {
                return this.scheduledDepartureTimeField;
            }
            set {
                this.scheduledDepartureTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool scheduledDepartureTimeSpecified {
            get {
                return this.scheduledDepartureTimeFieldSpecified;
            }
            set {
                this.scheduledDepartureTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _transitInformationExtension {
            get {
                return this._transitInformationExtensionField;
            }
            set {
                this._transitInformationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class ServiceDisruption : ServiceInformation {
        
        private _ServiceDisruptionTypeEnum[] serviceDisruptionTypeField;
        
        private _ExtensionType _serviceDisruptionExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("serviceDisruptionType")]
        public _ServiceDisruptionTypeEnum[] serviceDisruptionType {
            get {
                return this.serviceDisruptionTypeField;
            }
            set {
                this.serviceDisruptionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _serviceDisruptionExtension {
            get {
                return this._serviceDisruptionExtensionField;
            }
            set {
                this._serviceDisruptionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class RoadOperatorServiceDisruption : ServiceInformation {
        
        private _RoadOperatorServiceDisruptionTypeEnum[] roadOperatorServiceDisruptionTypeField;
        
        private _ExtensionType _roadOperatorServiceDisruptionExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("roadOperatorServiceDisruptionType")]
        public _RoadOperatorServiceDisruptionTypeEnum[] roadOperatorServiceDisruptionType {
            get {
                return this.roadOperatorServiceDisruptionTypeField;
            }
            set {
                this.roadOperatorServiceDisruptionTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _roadOperatorServiceDisruptionExtension {
            get {
                return this._roadOperatorServiceDisruptionExtensionField;
            }
            set {
                this._roadOperatorServiceDisruptionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Roadworks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MaintenanceWorks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConstructionWorks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NetworkManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SpeedManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadOrCarriagewayOrLaneManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralNetworkManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralInstructionOrMessageToRoadUsers))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class OperatorAction : SituationRecord {
        
        private _ExtensionType _operatorActionExtensionField;
        
        /// <remarks/>
        public _ExtensionType _operatorActionExtension {
            get {
                return this._operatorActionExtensionField;
            }
            set {
                this._operatorActionExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MaintenanceWorks))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConstructionWorks))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class Roadworks : OperatorAction {
        
        private bool urgentRoadworksField;
        
        private bool urgentRoadworksFieldSpecified;
        
        private MaintenanceVehicles maintenanceVehiclesField;
        
        private _ExtensionType _roadworksExtensionField;
        
        /// <remarks/>
        public bool urgentRoadworks {
            get {
                return this.urgentRoadworksField;
            }
            set {
                this.urgentRoadworksField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool urgentRoadworksSpecified {
            get {
                return this.urgentRoadworksFieldSpecified;
            }
            set {
                this.urgentRoadworksFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public MaintenanceVehicles maintenanceVehicles {
            get {
                return this.maintenanceVehiclesField;
            }
            set {
                this.maintenanceVehiclesField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _roadworksExtension {
            get {
                return this._roadworksExtensionField;
            }
            set {
                this._roadworksExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class MaintenanceWorks : Roadworks {
        
        private _RoadMaintenanceTypeEnum[] roadMaintenanceTypeField;
        
        private _ExtensionType _maintenanceWorksExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("roadMaintenanceType")]
        public _RoadMaintenanceTypeEnum[] roadMaintenanceType {
            get {
                return this.roadMaintenanceTypeField;
            }
            set {
                this.roadMaintenanceTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _maintenanceWorksExtension {
            get {
                return this._maintenanceWorksExtensionField;
            }
            set {
                this._maintenanceWorksExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class ConstructionWorks : Roadworks {
        
        private _ConstructionWorkTypeEnum constructionWorkTypeField;
        
        private _ExtensionType _constructionWorksExtensionField;
        
        /// <remarks/>
        public _ConstructionWorkTypeEnum constructionWorkType {
            get {
                return this.constructionWorkTypeField;
            }
            set {
                this.constructionWorkTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _constructionWorksExtension {
            get {
                return this._constructionWorksExtensionField;
            }
            set {
                this._constructionWorksExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SpeedManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoadOrCarriagewayOrLaneManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralNetworkManagement))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeneralInstructionOrMessageToRoadUsers))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public abstract partial class NetworkManagement : OperatorAction {
        
        private _ComplianceOptionEnum complianceOptionField;
        
        private VehicleCharacteristics[] forVehiclesWithCharacteristicsOfField;
        
        private _ExtensionType _networkManagementExtensionField;
        
        /// <remarks/>
        public _ComplianceOptionEnum complianceOption {
            get {
                return this.complianceOptionField;
            }
            set {
                this.complianceOptionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("forVehiclesWithCharacteristicsOf")]
        public VehicleCharacteristics[] forVehiclesWithCharacteristicsOf {
            get {
                return this.forVehiclesWithCharacteristicsOfField;
            }
            set {
                this.forVehiclesWithCharacteristicsOfField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _networkManagementExtension {
            get {
                return this._networkManagementExtensionField;
            }
            set {
                this._networkManagementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class SpeedManagement : NetworkManagement {
        
        private _SpeedManagementTypeEnum speedManagementTypeField;
        
        private float temporarySpeedLimitField;
        
        private bool temporarySpeedLimitFieldSpecified;
        
        private _ExtensionType _speedManagementExtensionField;
        
        /// <remarks/>
        public _SpeedManagementTypeEnum speedManagementType {
            get {
                return this.speedManagementTypeField;
            }
            set {
                this.speedManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public float temporarySpeedLimit {
            get {
                return this.temporarySpeedLimitField;
            }
            set {
                this.temporarySpeedLimitField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool temporarySpeedLimitSpecified {
            get {
                return this.temporarySpeedLimitFieldSpecified;
            }
            set {
                this.temporarySpeedLimitFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _speedManagementExtension {
            get {
                return this._speedManagementExtensionField;
            }
            set {
                this._speedManagementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class RoadOrCarriagewayOrLaneManagement : NetworkManagement {
        
        private _RoadOrCarriagewayOrLaneManagementTypeEnum roadOrCarriagewayOrLaneManagementTypeField;
        
        private _ExtensionType _roadOrCarriagewayOrLaneManagementExtensionField;
        
        /// <remarks/>
        public _RoadOrCarriagewayOrLaneManagementTypeEnum roadOrCarriagewayOrLaneManagementType {
            get {
                return this.roadOrCarriagewayOrLaneManagementTypeField;
            }
            set {
                this.roadOrCarriagewayOrLaneManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _roadOrCarriagewayOrLaneManagementExtension {
            get {
                return this._roadOrCarriagewayOrLaneManagementExtensionField;
            }
            set {
                this._roadOrCarriagewayOrLaneManagementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class GeneralNetworkManagement : NetworkManagement {
        
        private _GeneralNetworkManagementTypeEnum generalNetworkManagementTypeField;
        
        private _ExtensionType _generalNetworkManagementExtensionField;
        
        /// <remarks/>
        public _GeneralNetworkManagementTypeEnum generalNetworkManagementType {
            get {
                return this.generalNetworkManagementTypeField;
            }
            set {
                this.generalNetworkManagementTypeField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _generalNetworkManagementExtension {
            get {
                return this._generalNetworkManagementExtensionField;
            }
            set {
                this._generalNetworkManagementExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class GeneralInstructionOrMessageToRoadUsers : NetworkManagement {
        
        private _GeneralInstructionToRoadUsersTypeEnum generalInstructionToRoadUsersTypeField;
        
        private MultilingualString generalMessageToRoadUsersField;
        
        private _ExtensionType _generalInstructionOrMessageToRoadUsersExtensionField;
        
        /// <remarks/>
        public _GeneralInstructionToRoadUsersTypeEnum generalInstructionToRoadUsersType {
            get {
                return this.generalInstructionToRoadUsersTypeField;
            }
            set {
                this.generalInstructionToRoadUsersTypeField = value;
            }
        }
        
        /// <remarks/>
        public MultilingualString generalMessageToRoadUsers {
            get {
                return this.generalMessageToRoadUsersField;
            }
            set {
                this.generalMessageToRoadUsersField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _generalInstructionOrMessageToRoadUsersExtension {
            get {
                return this._generalInstructionOrMessageToRoadUsersExtensionField;
            }
            set {
                this._generalInstructionOrMessageToRoadUsersExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class GenericSituationRecord : SituationRecord {
        
        private string genericSituationRecordNameField;
        
        private _ExtensionType _genericSituationRecordExtensionField;
        
        /// <remarks/>
        public string genericSituationRecordName {
            get {
                return this.genericSituationRecordNameField;
            }
            set {
                this.genericSituationRecordNameField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _genericSituationRecordExtension {
            get {
                return this._genericSituationRecordExtensionField;
            }
            set {
                this._genericSituationRecordExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class _InformationStatusEnum {
        
        private string _extendedValueField;
        
        private InformationStatusEnum valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string _extendedValue {
            get {
                return this._extendedValueField;
            }
            set {
                this._extendedValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public InformationStatusEnum Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public enum InformationStatusEnum {
        
        /// <remarks/>
        real,
        
        /// <remarks/>
        securityExercise,
        
        /// <remarks/>
        technicalExercise,
        
        /// <remarks/>
        test,
        
        /// <remarks/>
        _extended,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/common")]
    public partial class HeaderInformation {
        
        private _InformationStatusEnum informationStatusField;
        
        private _ExtensionType _headerInformationExtensionField;
        
        /// <remarks/>
        public _InformationStatusEnum informationStatus {
            get {
                return this.informationStatusField;
            }
            set {
                this.informationStatusField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _headerInformationExtension {
            get {
                return this._headerInformationExtensionField;
            }
            set {
                this._headerInformationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class Situation {
        
        private _SeverityEnum overallSeverityField;
        
        private System.DateTime situationVersionTimeField;
        
        private bool situationVersionTimeFieldSpecified;
        
        private HeaderInformation headerInformationField;
        
        private SituationRecord[] situationRecordField;
        
        private InternationalIdentifier informationManagerField;
        
        private SituationRecord situationSummaryField;
        
        private _ExtensionType _situationExtensionField;
        
        private string idField;
        
        /// <remarks/>
        public _SeverityEnum overallSeverity {
            get {
                return this.overallSeverityField;
            }
            set {
                this.overallSeverityField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime situationVersionTime {
            get {
                return this.situationVersionTimeField;
            }
            set {
                this.situationVersionTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool situationVersionTimeSpecified {
            get {
                return this.situationVersionTimeFieldSpecified;
            }
            set {
                this.situationVersionTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        public HeaderInformation headerInformation {
            get {
                return this.headerInformationField;
            }
            set {
                this.headerInformationField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("situationRecord")]
        public SituationRecord[] situationRecord {
            get {
                return this.situationRecordField;
            }
            set {
                this.situationRecordField = value;
            }
        }
        
        /// <remarks/>
        public InternationalIdentifier informationManager {
            get {
                return this.informationManagerField;
            }
            set {
                this.informationManagerField = value;
            }
        }
        
        /// <remarks/>
        public SituationRecord situationSummary {
            get {
                return this.situationSummaryField;
            }
            set {
                this.situationSummaryField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _situationExtension {
            get {
                return this._situationExtensionField;
            }
            set {
                this._situationExtensionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://datex2.eu/schema/3/situation")]
    public partial class SituationPublication : PayloadPublication {
        
        private Situation[] situationField;
        
        private _ExtensionType _situationPublicationExtensionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("situation")]
        public Situation[] situation {
            get {
                return this.situationField;
            }
            set {
                this.situationField = value;
            }
        }
        
        /// <remarks/>
        public _ExtensionType _situationPublicationExtension {
            get {
                return this._situationPublicationExtensionField;
            }
            set {
                this._situationPublicationExtensionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    public delegate void pullDataCompletedEventHandler(object sender, pullDataCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.8.3928.0")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class pullDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal pullDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public MessageContainer Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((MessageContainer)(this.results[0]));
            }
        }
    }
}
