You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2021/03/11 12:57:24 UTC

[plc4x] branch develop updated: - Added an execution of go fmt in the build - Fixed a bug in the error handling of generated XML code

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new b1dc1be  - Added an execution of go fmt in the build - Fixed a bug in the error handling of generated XML code
b1dc1be is described below

commit b1dc1be09b82bdbad0c0648c6817a91a76dbcdbe
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Mar 11 13:57:03 2021 +0100

    - Added an execution of go fmt in the build
    - Fixed a bug in the error handling of generated XML code
---
 .../resources/templates/go/model-template.ftlh     |     4 +-
 .../model/AdsAddDeviceNotificationRequest.go       |   511 +-
 .../internal/plc4go/ads/readwrite/model/AdsData.go |   747 +-
 .../ads/readwrite/model/AdsMultiRequestItem.go     |     4 +-
 .../plc4go/bacnetip/readwrite/model/APDU.go        |   435 +-
 .../readwrite/model/BACnetConfirmedServiceACK.go   |   603 +-
 .../model/BACnetConfirmedServiceRequest.go         |  1079 +-
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |   603 +-
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |   603 +-
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |   847 +-
 .../model/BACnetUnconfirmedServiceRequest.go       |   547 +-
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |   649 +-
 .../plc4go/bacnetip/readwrite/model/NLM.go         |   343 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go |    84 +-
 .../plc4go/knxnetip/readwrite/model/Apdu.go        |   359 +-
 .../plc4go/knxnetip/readwrite/model/ApduControl.go |   327 +-
 .../plc4go/knxnetip/readwrite/model/ApduData.go    |   659 +-
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go |  1359 +-
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |   855 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |   271 +-
 .../knxnetip/readwrite/model/ComObjectTable.go     |   271 +-
 .../model/ConnectionRequestInformation.go          |   305 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |   305 +-
 .../knxnetip/readwrite/model/KnxDatapointType.go   | 12276 ++++++++-------
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |   271 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 15225 ++++++++++---------
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   763 +-
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  |   585 +-
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |   407 +-
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |  1333 +-
 .../plc4go/s7/readwrite/model/COTPPacket.go        |   591 +-
 .../plc4go/s7/readwrite/model/COTPParameter.go     |   377 +-
 .../plc4go/s7/readwrite/model/S7Address.go         |   243 +-
 .../plc4go/s7/readwrite/model/S7Message.go         |   663 +-
 .../plc4go/s7/readwrite/model/S7Parameter.go       |   381 +-
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |   243 +-
 .../plc4go/s7/readwrite/model/S7Payload.go         |   301 +-
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |   473 +-
 .../readwrite/model/S7VarRequestParameterItem.go   |   243 +-
 .../plc4go/spi/testutils/DriverTestRunner.go       |     6 +-
 plc4go/internal/plc4go/spi/values/PlcBitString.go  |     1 -
 plc4go/pom.xml                                     |     9 +-
 42 files changed, 24122 insertions(+), 22039 deletions(-)

diff --git a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
index 9b7d7d1..4619d9e 100644
--- a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
@@ -1033,7 +1033,9 @@ func (m *${type.name}) MarshalXML(e *xml.Encoder, start xml.StartElement) error
     if !ok {
         return errors.New("child is not castable to Marshaler")
     }
-    marshaller.MarshalXML(e, start)
+    if err := marshaller.MarshalXML(e, start); err != nil {
+        return err
+    }
             </#if>
         </#list>
     </#if>
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index 169f666..be0ab91 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -19,317 +19,314 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    log "github.com/sirupsen/logrus"
-    "io"
-    "math/big"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	log "github.com/sirupsen/logrus"
+	"io"
 )
 
 // The data-structure of this message
 type AdsAddDeviceNotificationRequest struct {
-    IndexGroup uint32
-    IndexOffset uint32
-    Length uint32
-    TransmissionMode uint32
-    MaxDelay uint32
-    CycleTime uint32
-    Parent *AdsData
-    IAdsAddDeviceNotificationRequest
+	IndexGroup       uint32
+	IndexOffset      uint32
+	Length           uint32
+	TransmissionMode uint32
+	MaxDelay         uint32
+	CycleTime        uint32
+	Parent           *AdsData
+	IAdsAddDeviceNotificationRequest
 }
 
 // The corresponding interface
 type IAdsAddDeviceNotificationRequest interface {
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 ///////////////////////////////////////////////////////////
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *AdsAddDeviceNotificationRequest) CommandId() CommandId {
-    return CommandId_ADS_ADD_DEVICE_NOTIFICATION
+	return CommandId_ADS_ADD_DEVICE_NOTIFICATION
 }
 
 func (m *AdsAddDeviceNotificationRequest) Response() bool {
-    return false
+	return false
 }
 
-
 func (m *AdsAddDeviceNotificationRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsAddDeviceNotificationRequest(indexGroup uint32, indexOffset uint32, length uint32, transmissionMode uint32, maxDelay uint32, cycleTime uint32) *AdsData {
-    child := &AdsAddDeviceNotificationRequest{
-        IndexGroup: indexGroup,
-        IndexOffset: indexOffset,
-        Length: length,
-        TransmissionMode: transmissionMode,
-        MaxDelay: maxDelay,
-        CycleTime: cycleTime,
-        Parent: NewAdsData(),
-    }
-    child.Parent.Child = child
-    return child.Parent
+	child := &AdsAddDeviceNotificationRequest{
+		IndexGroup:       indexGroup,
+		IndexOffset:      indexOffset,
+		Length:           length,
+		TransmissionMode: transmissionMode,
+		MaxDelay:         maxDelay,
+		CycleTime:        cycleTime,
+		Parent:           NewAdsData(),
+	}
+	child.Parent.Child = child
+	return child.Parent
 }
 
 func CastAdsAddDeviceNotificationRequest(structType interface{}) *AdsAddDeviceNotificationRequest {
-    castFunc := func(typ interface{}) *AdsAddDeviceNotificationRequest {
-        if casted, ok := typ.(AdsAddDeviceNotificationRequest); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*AdsAddDeviceNotificationRequest); ok {
-            return casted
-        }
-        if casted, ok := typ.(AdsData); ok {
-            return CastAdsAddDeviceNotificationRequest(casted.Child)
-        }
-        if casted, ok := typ.(*AdsData); ok {
-            return CastAdsAddDeviceNotificationRequest(casted.Child)
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *AdsAddDeviceNotificationRequest {
+		if casted, ok := typ.(AdsAddDeviceNotificationRequest); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*AdsAddDeviceNotificationRequest); ok {
+			return casted
+		}
+		if casted, ok := typ.(AdsData); ok {
+			return CastAdsAddDeviceNotificationRequest(casted.Child)
+		}
+		if casted, ok := typ.(*AdsData); ok {
+			return CastAdsAddDeviceNotificationRequest(casted.Child)
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *AdsAddDeviceNotificationRequest) GetTypeName() string {
-    return "AdsAddDeviceNotificationRequest"
+	return "AdsAddDeviceNotificationRequest"
 }
 
 func (m *AdsAddDeviceNotificationRequest) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Simple field (indexGroup)
-    lengthInBits += 32
+	// Simple field (indexGroup)
+	lengthInBits += 32
 
-    // Simple field (indexOffset)
-    lengthInBits += 32
+	// Simple field (indexOffset)
+	lengthInBits += 32
 
-    // Simple field (length)
-    lengthInBits += 32
+	// Simple field (length)
+	lengthInBits += 32
 
-    // Simple field (transmissionMode)
-    lengthInBits += 32
+	// Simple field (transmissionMode)
+	lengthInBits += 32
 
-    // Simple field (maxDelay)
-    lengthInBits += 32
+	// Simple field (maxDelay)
+	lengthInBits += 32
 
-    // Simple field (cycleTime)
-    lengthInBits += 32
+	// Simple field (cycleTime)
+	lengthInBits += 32
 
-    // Reserved Field (reserved)
-    lengthInBits += 128
+	// Reserved Field (reserved)
+	lengthInBits += 128
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *AdsAddDeviceNotificationRequest) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func AdsAddDeviceNotificationRequestParse(io *utils.ReadBuffer) (*AdsData, error) {
 
-    // Simple Field (indexGroup)
-    indexGroup, _indexGroupErr := io.ReadUint32(32)
-    if _indexGroupErr != nil {
-        return nil, errors.New("Error parsing 'indexGroup' field " + _indexGroupErr.Error())
-    }
-
-    // Simple Field (indexOffset)
-    indexOffset, _indexOffsetErr := io.ReadUint32(32)
-    if _indexOffsetErr != nil {
-        return nil, errors.New("Error parsing 'indexOffset' field " + _indexOffsetErr.Error())
-    }
-
-    // Simple Field (length)
-    length, _lengthErr := io.ReadUint32(32)
-    if _lengthErr != nil {
-        return nil, errors.New("Error parsing 'length' field " + _lengthErr.Error())
-    }
-
-    // Simple Field (transmissionMode)
-    transmissionMode, _transmissionModeErr := io.ReadUint32(32)
-    if _transmissionModeErr != nil {
-        return nil, errors.New("Error parsing 'transmissionMode' field " + _transmissionModeErr.Error())
-    }
-
-    // Simple Field (maxDelay)
-    maxDelay, _maxDelayErr := io.ReadUint32(32)
-    if _maxDelayErr != nil {
-        return nil, errors.New("Error parsing 'maxDelay' field " + _maxDelayErr.Error())
-    }
-
-    // Simple Field (cycleTime)
-    cycleTime, _cycleTimeErr := io.ReadUint32(32)
-    if _cycleTimeErr != nil {
-        return nil, errors.New("Error parsing 'cycleTime' field " + _cycleTimeErr.Error())
-    }
-
-    // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
-    {
-        reserved, _err := io.ReadBigInt(128)
-        if _err != nil {
-            return nil, errors.New("Error parsing 'reserved' field " + _err.Error())
-        }
-        if reserved.Cmp(big.NewInt(0x0000)) != 0 {
-            log.WithFields(log.Fields{
-                "expected value": big.NewInt(0x0000),
-                "got value": reserved,
-            }).Info("Got unexpected response.")
-        }
-    }
-
-    // Create a partially initialized instance
-    _child := &AdsAddDeviceNotificationRequest{
-        IndexGroup: indexGroup,
-        IndexOffset: indexOffset,
-        Length: length,
-        TransmissionMode: transmissionMode,
-        MaxDelay: maxDelay,
-        CycleTime: cycleTime,
-        Parent: &AdsData{},
-    }
-    _child.Parent.Child = _child
-    return _child.Parent, nil
+	// Simple Field (indexGroup)
+	indexGroup, _indexGroupErr := io.ReadUint32(32)
+	if _indexGroupErr != nil {
+		return nil, errors.New("Error parsing 'indexGroup' field " + _indexGroupErr.Error())
+	}
+
+	// Simple Field (indexOffset)
+	indexOffset, _indexOffsetErr := io.ReadUint32(32)
+	if _indexOffsetErr != nil {
+		return nil, errors.New("Error parsing 'indexOffset' field " + _indexOffsetErr.Error())
+	}
+
+	// Simple Field (length)
+	length, _lengthErr := io.ReadUint32(32)
+	if _lengthErr != nil {
+		return nil, errors.New("Error parsing 'length' field " + _lengthErr.Error())
+	}
+
+	// Simple Field (transmissionMode)
+	transmissionMode, _transmissionModeErr := io.ReadUint32(32)
+	if _transmissionModeErr != nil {
+		return nil, errors.New("Error parsing 'transmissionMode' field " + _transmissionModeErr.Error())
+	}
+
+	// Simple Field (maxDelay)
+	maxDelay, _maxDelayErr := io.ReadUint32(32)
+	if _maxDelayErr != nil {
+		return nil, errors.New("Error parsing 'maxDelay' field " + _maxDelayErr.Error())
+	}
+
+	// Simple Field (cycleTime)
+	cycleTime, _cycleTimeErr := io.ReadUint32(32)
+	if _cycleTimeErr != nil {
+		return nil, errors.New("Error parsing 'cycleTime' field " + _cycleTimeErr.Error())
+	}
+
+	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+	{
+		reserved, _err := io.ReadBigInt(128)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'reserved' field " + _err.Error())
+		}
+		if reserved.Cmp(big.NewInt(0x0000)) != 0 {
+			log.WithFields(log.Fields{
+				"expected value": big.NewInt(0x0000),
+				"got value":      reserved,
+			}).Info("Got unexpected response.")
+		}
+	}
+
+	// Create a partially initialized instance
+	_child := &AdsAddDeviceNotificationRequest{
+		IndexGroup:       indexGroup,
+		IndexOffset:      indexOffset,
+		Length:           length,
+		TransmissionMode: transmissionMode,
+		MaxDelay:         maxDelay,
+		CycleTime:        cycleTime,
+		Parent:           &AdsData{},
+	}
+	_child.Parent.Child = _child
+	return _child.Parent, nil
 }
 
 func (m *AdsAddDeviceNotificationRequest) Serialize(io utils.WriteBuffer) error {
-    ser := func() error {
-
-    // Simple Field (indexGroup)
-    indexGroup := uint32(m.IndexGroup)
-    _indexGroupErr := io.WriteUint32(32, (indexGroup))
-    if _indexGroupErr != nil {
-        return errors.New("Error serializing 'indexGroup' field " + _indexGroupErr.Error())
-    }
-
-    // Simple Field (indexOffset)
-    indexOffset := uint32(m.IndexOffset)
-    _indexOffsetErr := io.WriteUint32(32, (indexOffset))
-    if _indexOffsetErr != nil {
-        return errors.New("Error serializing 'indexOffset' field " + _indexOffsetErr.Error())
-    }
-
-    // Simple Field (length)
-    length := uint32(m.Length)
-    _lengthErr := io.WriteUint32(32, (length))
-    if _lengthErr != nil {
-        return errors.New("Error serializing 'length' field " + _lengthErr.Error())
-    }
-
-    // Simple Field (transmissionMode)
-    transmissionMode := uint32(m.TransmissionMode)
-    _transmissionModeErr := io.WriteUint32(32, (transmissionMode))
-    if _transmissionModeErr != nil {
-        return errors.New("Error serializing 'transmissionMode' field " + _transmissionModeErr.Error())
-    }
-
-    // Simple Field (maxDelay)
-    maxDelay := uint32(m.MaxDelay)
-    _maxDelayErr := io.WriteUint32(32, (maxDelay))
-    if _maxDelayErr != nil {
-        return errors.New("Error serializing 'maxDelay' field " + _maxDelayErr.Error())
-    }
-
-    // Simple Field (cycleTime)
-    cycleTime := uint32(m.CycleTime)
-    _cycleTimeErr := io.WriteUint32(32, (cycleTime))
-    if _cycleTimeErr != nil {
-        return errors.New("Error serializing 'cycleTime' field " + _cycleTimeErr.Error())
-    }
-
-    // Reserved Field (reserved)
-    {
-        _err := io.WriteBigInt(128, big.NewInt(0x0000))
-        if _err != nil {
-            return errors.New("Error serializing 'reserved' field " + _err.Error())
-        }
-    }
-
-        return nil
-    }
-    return m.Parent.SerializeParent(io, m, ser)
+	ser := func() error {
+
+		// Simple Field (indexGroup)
+		indexGroup := uint32(m.IndexGroup)
+		_indexGroupErr := io.WriteUint32(32, (indexGroup))
+		if _indexGroupErr != nil {
+			return errors.New("Error serializing 'indexGroup' field " + _indexGroupErr.Error())
+		}
+
+		// Simple Field (indexOffset)
+		indexOffset := uint32(m.IndexOffset)
+		_indexOffsetErr := io.WriteUint32(32, (indexOffset))
+		if _indexOffsetErr != nil {
+			return errors.New("Error serializing 'indexOffset' field " + _indexOffsetErr.Error())
+		}
+
+		// Simple Field (length)
+		length := uint32(m.Length)
+		_lengthErr := io.WriteUint32(32, (length))
+		if _lengthErr != nil {
+			return errors.New("Error serializing 'length' field " + _lengthErr.Error())
+		}
+
+		// Simple Field (transmissionMode)
+		transmissionMode := uint32(m.TransmissionMode)
+		_transmissionModeErr := io.WriteUint32(32, (transmissionMode))
+		if _transmissionModeErr != nil {
+			return errors.New("Error serializing 'transmissionMode' field " + _transmissionModeErr.Error())
+		}
+
+		// Simple Field (maxDelay)
+		maxDelay := uint32(m.MaxDelay)
+		_maxDelayErr := io.WriteUint32(32, (maxDelay))
+		if _maxDelayErr != nil {
+			return errors.New("Error serializing 'maxDelay' field " + _maxDelayErr.Error())
+		}
+
+		// Simple Field (cycleTime)
+		cycleTime := uint32(m.CycleTime)
+		_cycleTimeErr := io.WriteUint32(32, (cycleTime))
+		if _cycleTimeErr != nil {
+			return errors.New("Error serializing 'cycleTime' field " + _cycleTimeErr.Error())
+		}
+
+		// Reserved Field (reserved)
+		{
+			_err := io.WriteBigInt(128, big.NewInt(0x0000))
+			if _err != nil {
+				return errors.New("Error serializing 'reserved' field " + _err.Error())
+			}
+		}
+
+		return nil
+	}
+	return m.Parent.SerializeParent(io, m, ser)
 }
 
 func (m *AdsAddDeviceNotificationRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    token = start
-    for {
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "indexGroup":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.IndexGroup = data
-            case "indexOffset":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.IndexOffset = data
-            case "length":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.Length = data
-            case "transmissionMode":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.TransmissionMode = data
-            case "maxDelay":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.MaxDelay = data
-            case "cycleTime":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.CycleTime = data
-            }
-        }
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-    }
+	var token xml.Token
+	var err error
+	token = start
+	for {
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "indexGroup":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.IndexGroup = data
+			case "indexOffset":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.IndexOffset = data
+			case "length":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.Length = data
+			case "transmissionMode":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.TransmissionMode = data
+			case "maxDelay":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.MaxDelay = data
+			case "cycleTime":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.CycleTime = data
+			}
+		}
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+	}
 }
 
 func (m *AdsAddDeviceNotificationRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    if err := e.EncodeElement(m.IndexGroup, xml.StartElement{Name: xml.Name{Local: "indexGroup"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.IndexOffset, xml.StartElement{Name: xml.Name{Local: "indexOffset"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.Length, xml.StartElement{Name: xml.Name{Local: "length"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.TransmissionMode, xml.StartElement{Name: xml.Name{Local: "transmissionMode"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.MaxDelay, xml.StartElement{Name: xml.Name{Local: "maxDelay"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.CycleTime, xml.StartElement{Name: xml.Name{Local: "cycleTime"}}); err != nil {
-        return err
-    }
-    return nil
+	if err := e.EncodeElement(m.IndexGroup, xml.StartElement{Name: xml.Name{Local: "indexGroup"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.IndexOffset, xml.StartElement{Name: xml.Name{Local: "indexOffset"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.Length, xml.StartElement{Name: xml.Name{Local: "length"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.TransmissionMode, xml.StartElement{Name: xml.Name{Local: "transmissionMode"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.MaxDelay, xml.StartElement{Name: xml.Name{Local: "maxDelay"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.CycleTime, xml.StartElement{Name: xml.Name{Local: "cycleTime"}}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
index e2242f8..0acbd2a 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
@@ -19,427 +19,428 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type AdsData struct {
-    Child IAdsDataChild
-    IAdsData
-    IAdsDataParent
+	Child IAdsDataChild
+	IAdsData
+	IAdsDataParent
 }
 
 // The corresponding interface
 type IAdsData interface {
-    CommandId() CommandId
-    Response() bool
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	CommandId() CommandId
+	Response() bool
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IAdsDataParent interface {
-    SerializeParent(io utils.WriteBuffer, child IAdsData, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IAdsData, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IAdsDataChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *AdsData)
-    GetTypeName() string
-    IAdsData
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *AdsData)
+	GetTypeName() string
+	IAdsData
 }
 
 func NewAdsData() *AdsData {
-    return &AdsData{}
+	return &AdsData{}
 }
 
 func CastAdsData(structType interface{}) *AdsData {
-    castFunc := func(typ interface{}) *AdsData {
-        if casted, ok := typ.(AdsData); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*AdsData); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *AdsData {
+		if casted, ok := typ.(AdsData); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*AdsData); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *AdsData) GetTypeName() string {
-    return "AdsData"
+	return "AdsData"
 }
 
 func (m *AdsData) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *AdsData) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func AdsDataParse(io *utils.ReadBuffer, commandId *CommandId, response bool) (*AdsData, error) {
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *AdsData
-    var typeSwitchError error
-    switch {
-    case *commandId == CommandId_INVALID && response == false:
-        _parent, typeSwitchError = AdsInvalidRequestParse(io)
-    case *commandId == CommandId_INVALID && response == true:
-        _parent, typeSwitchError = AdsInvalidResponseParse(io)
-    case *commandId == CommandId_ADS_READ_DEVICE_INFO && response == false:
-        _parent, typeSwitchError = AdsReadDeviceInfoRequestParse(io)
-    case *commandId == CommandId_ADS_READ_DEVICE_INFO && response == true:
-        _parent, typeSwitchError = AdsReadDeviceInfoResponseParse(io)
-    case *commandId == CommandId_ADS_READ && response == false:
-        _parent, typeSwitchError = AdsReadRequestParse(io)
-    case *commandId == CommandId_ADS_READ && response == true:
-        _parent, typeSwitchError = AdsReadResponseParse(io)
-    case *commandId == CommandId_ADS_WRITE && response == false:
-        _parent, typeSwitchError = AdsWriteRequestParse(io)
-    case *commandId == CommandId_ADS_WRITE && response == true:
-        _parent, typeSwitchError = AdsWriteResponseParse(io)
-    case *commandId == CommandId_ADS_READ_STATE && response == false:
-        _parent, typeSwitchError = AdsReadStateRequestParse(io)
-    case *commandId == CommandId_ADS_READ_STATE && response == true:
-        _parent, typeSwitchError = AdsReadStateResponseParse(io)
-    case *commandId == CommandId_ADS_WRITE_CONTROL && response == false:
-        _parent, typeSwitchError = AdsWriteControlRequestParse(io)
-    case *commandId == CommandId_ADS_WRITE_CONTROL && response == true:
-        _parent, typeSwitchError = AdsWriteControlResponseParse(io)
-    case *commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == false:
-        _parent, typeSwitchError = AdsAddDeviceNotificationRequestParse(io)
-    case *commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == true:
-        _parent, typeSwitchError = AdsAddDeviceNotificationResponseParse(io)
-    case *commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == false:
-        _parent, typeSwitchError = AdsDeleteDeviceNotificationRequestParse(io)
-    case *commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == true:
-        _parent, typeSwitchError = AdsDeleteDeviceNotificationResponseParse(io)
-    case *commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == false:
-        _parent, typeSwitchError = AdsDeviceNotificationRequestParse(io)
-    case *commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == true:
-        _parent, typeSwitchError = AdsDeviceNotificationResponseParse(io)
-    case *commandId == CommandId_ADS_READ_WRITE && response == false:
-        _parent, typeSwitchError = AdsReadWriteRequestParse(io)
-    case *commandId == CommandId_ADS_READ_WRITE && response == true:
-        _parent, typeSwitchError = AdsReadWriteResponseParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *AdsData
+	var typeSwitchError error
+	switch {
+	case *commandId == CommandId_INVALID && response == false:
+		_parent, typeSwitchError = AdsInvalidRequestParse(io)
+	case *commandId == CommandId_INVALID && response == true:
+		_parent, typeSwitchError = AdsInvalidResponseParse(io)
+	case *commandId == CommandId_ADS_READ_DEVICE_INFO && response == false:
+		_parent, typeSwitchError = AdsReadDeviceInfoRequestParse(io)
+	case *commandId == CommandId_ADS_READ_DEVICE_INFO && response == true:
+		_parent, typeSwitchError = AdsReadDeviceInfoResponseParse(io)
+	case *commandId == CommandId_ADS_READ && response == false:
+		_parent, typeSwitchError = AdsReadRequestParse(io)
+	case *commandId == CommandId_ADS_READ && response == true:
+		_parent, typeSwitchError = AdsReadResponseParse(io)
+	case *commandId == CommandId_ADS_WRITE && response == false:
+		_parent, typeSwitchError = AdsWriteRequestParse(io)
+	case *commandId == CommandId_ADS_WRITE && response == true:
+		_parent, typeSwitchError = AdsWriteResponseParse(io)
+	case *commandId == CommandId_ADS_READ_STATE && response == false:
+		_parent, typeSwitchError = AdsReadStateRequestParse(io)
+	case *commandId == CommandId_ADS_READ_STATE && response == true:
+		_parent, typeSwitchError = AdsReadStateResponseParse(io)
+	case *commandId == CommandId_ADS_WRITE_CONTROL && response == false:
+		_parent, typeSwitchError = AdsWriteControlRequestParse(io)
+	case *commandId == CommandId_ADS_WRITE_CONTROL && response == true:
+		_parent, typeSwitchError = AdsWriteControlResponseParse(io)
+	case *commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == false:
+		_parent, typeSwitchError = AdsAddDeviceNotificationRequestParse(io)
+	case *commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == true:
+		_parent, typeSwitchError = AdsAddDeviceNotificationResponseParse(io)
+	case *commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == false:
+		_parent, typeSwitchError = AdsDeleteDeviceNotificationRequestParse(io)
+	case *commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == true:
+		_parent, typeSwitchError = AdsDeleteDeviceNotificationResponseParse(io)
+	case *commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == false:
+		_parent, typeSwitchError = AdsDeviceNotificationRequestParse(io)
+	case *commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == true:
+		_parent, typeSwitchError = AdsDeviceNotificationResponseParse(io)
+	case *commandId == CommandId_ADS_READ_WRITE && response == false:
+		_parent, typeSwitchError = AdsReadWriteRequestParse(io)
+	case *commandId == CommandId_ADS_READ_WRITE && response == true:
+		_parent, typeSwitchError = AdsReadWriteResponseParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *AdsData) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *AdsData) SerializeParent(io utils.WriteBuffer, child IAdsData, serializeChildFunction func() error) error {
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *AdsData) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.ads.readwrite.AdsInvalidRequest":
-                        var dt *AdsInvalidRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsInvalidRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsInvalidResponse":
-                        var dt *AdsInvalidResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsInvalidResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadDeviceInfoRequest":
-                        var dt *AdsReadDeviceInfoRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadDeviceInfoRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadDeviceInfoResponse":
-                        var dt *AdsReadDeviceInfoResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadDeviceInfoResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadRequest":
-                        var dt *AdsReadRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadResponse":
-                        var dt *AdsReadResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsWriteRequest":
-                        var dt *AdsWriteRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsWriteRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsWriteResponse":
-                        var dt *AdsWriteResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsWriteResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadStateRequest":
-                        var dt *AdsReadStateRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadStateRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadStateResponse":
-                        var dt *AdsReadStateResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadStateResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsWriteControlRequest":
-                        var dt *AdsWriteControlRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsWriteControlRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsWriteControlResponse":
-                        var dt *AdsWriteControlResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsWriteControlResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsAddDeviceNotificationRequest":
-                        var dt *AdsAddDeviceNotificationRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsAddDeviceNotificationRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsAddDeviceNotificationResponse":
-                        var dt *AdsAddDeviceNotificationResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsAddDeviceNotificationResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsDeleteDeviceNotificationRequest":
-                        var dt *AdsDeleteDeviceNotificationRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsDeleteDeviceNotificationRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsDeleteDeviceNotificationResponse":
-                        var dt *AdsDeleteDeviceNotificationResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsDeleteDeviceNotificationResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsDeviceNotificationRequest":
-                        var dt *AdsDeviceNotificationRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsDeviceNotificationRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsDeviceNotificationResponse":
-                        var dt *AdsDeviceNotificationResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsDeviceNotificationResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadWriteRequest":
-                        var dt *AdsReadWriteRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadWriteRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsReadWriteResponse":
-                        var dt *AdsReadWriteResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsReadWriteResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.ads.readwrite.AdsInvalidRequest":
+					var dt *AdsInvalidRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsInvalidRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsInvalidResponse":
+					var dt *AdsInvalidResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsInvalidResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadDeviceInfoRequest":
+					var dt *AdsReadDeviceInfoRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadDeviceInfoRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadDeviceInfoResponse":
+					var dt *AdsReadDeviceInfoResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadDeviceInfoResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadRequest":
+					var dt *AdsReadRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadResponse":
+					var dt *AdsReadResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsWriteRequest":
+					var dt *AdsWriteRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsWriteRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsWriteResponse":
+					var dt *AdsWriteResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsWriteResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadStateRequest":
+					var dt *AdsReadStateRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadStateRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadStateResponse":
+					var dt *AdsReadStateResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadStateResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsWriteControlRequest":
+					var dt *AdsWriteControlRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsWriteControlRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsWriteControlResponse":
+					var dt *AdsWriteControlResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsWriteControlResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsAddDeviceNotificationRequest":
+					var dt *AdsAddDeviceNotificationRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsAddDeviceNotificationRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsAddDeviceNotificationResponse":
+					var dt *AdsAddDeviceNotificationResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsAddDeviceNotificationResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsDeleteDeviceNotificationRequest":
+					var dt *AdsDeleteDeviceNotificationRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsDeleteDeviceNotificationRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsDeleteDeviceNotificationResponse":
+					var dt *AdsDeleteDeviceNotificationResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsDeleteDeviceNotificationResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsDeviceNotificationRequest":
+					var dt *AdsDeviceNotificationRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsDeviceNotificationRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsDeviceNotificationResponse":
+					var dt *AdsDeviceNotificationResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsDeviceNotificationResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadWriteRequest":
+					var dt *AdsReadWriteRequest
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadWriteRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsReadWriteResponse":
+					var dt *AdsReadWriteResponse
+					if m.Child != nil {
+						dt = m.Child.(*AdsReadWriteResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *AdsData) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.ads.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.ads.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
index 8223aad..0f85551 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
@@ -197,7 +197,9 @@ func (m *AdsMultiRequestItem) MarshalXML(e *xml.Encoder, start xml.StartElement)
     if !ok {
         return errors.New("child is not castable to Marshaler")
     }
-    marshaller.MarshalXML(e, start)
+    if err := marshaller.MarshalXML(e, start); err != nil {
+        return err
+    }
     if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
         return err
     }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
index af5e998..18f828f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
@@ -19,274 +19,275 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type APDU struct {
-    Child IAPDUChild
-    IAPDU
-    IAPDUParent
+	Child IAPDUChild
+	IAPDU
+	IAPDUParent
 }
 
 // The corresponding interface
 type IAPDU interface {
-    ApduType() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ApduType() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IAPDUParent interface {
-    SerializeParent(io utils.WriteBuffer, child IAPDU, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IAPDU, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IAPDUChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *APDU)
-    GetTypeName() string
-    IAPDU
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *APDU)
+	GetTypeName() string
+	IAPDU
 }
 
 func NewAPDU() *APDU {
-    return &APDU{}
+	return &APDU{}
 }
 
 func CastAPDU(structType interface{}) *APDU {
-    castFunc := func(typ interface{}) *APDU {
-        if casted, ok := typ.(APDU); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*APDU); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *APDU {
+		if casted, ok := typ.(APDU); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*APDU); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *APDU) GetTypeName() string {
-    return "APDU"
+	return "APDU"
 }
 
 func (m *APDU) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (apduType)
-    lengthInBits += 4
+	// Discriminator Field (apduType)
+	lengthInBits += 4
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *APDU) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func APDUParse(io *utils.ReadBuffer, apduLength uint16) (*APDU, error) {
 
-    // Discriminator Field (apduType) (Used as input to a switch field)
-    apduType, _apduTypeErr := io.ReadUint8(4)
-    if _apduTypeErr != nil {
-        return nil, errors.New("Error parsing 'apduType' field " + _apduTypeErr.Error())
-    }
+	// Discriminator Field (apduType) (Used as input to a switch field)
+	apduType, _apduTypeErr := io.ReadUint8(4)
+	if _apduTypeErr != nil {
+		return nil, errors.New("Error parsing 'apduType' field " + _apduTypeErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *APDU
-    var typeSwitchError error
-    switch {
-    case apduType == 0x0:
-        _parent, typeSwitchError = APDUConfirmedRequestParse(io, apduLength)
-    case apduType == 0x1:
-        _parent, typeSwitchError = APDUUnconfirmedRequestParse(io, apduLength)
-    case apduType == 0x2:
-        _parent, typeSwitchError = APDUSimpleAckParse(io)
-    case apduType == 0x3:
-        _parent, typeSwitchError = APDUComplexAckParse(io)
-    case apduType == 0x4:
-        _parent, typeSwitchError = APDUSegmentAckParse(io)
-    case apduType == 0x5:
-        _parent, typeSwitchError = APDUErrorParse(io)
-    case apduType == 0x6:
-        _parent, typeSwitchError = APDURejectParse(io)
-    case apduType == 0x7:
-        _parent, typeSwitchError = APDUAbortParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *APDU
+	var typeSwitchError error
+	switch {
+	case apduType == 0x0:
+		_parent, typeSwitchError = APDUConfirmedRequestParse(io, apduLength)
+	case apduType == 0x1:
+		_parent, typeSwitchError = APDUUnconfirmedRequestParse(io, apduLength)
+	case apduType == 0x2:
+		_parent, typeSwitchError = APDUSimpleAckParse(io)
+	case apduType == 0x3:
+		_parent, typeSwitchError = APDUComplexAckParse(io)
+	case apduType == 0x4:
+		_parent, typeSwitchError = APDUSegmentAckParse(io)
+	case apduType == 0x5:
+		_parent, typeSwitchError = APDUErrorParse(io)
+	case apduType == 0x6:
+		_parent, typeSwitchError = APDURejectParse(io)
+	case apduType == 0x7:
+		_parent, typeSwitchError = APDUAbortParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *APDU) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *APDU) SerializeParent(io utils.WriteBuffer, child IAPDU, serializeChildFunction func() error) error {
 
-    // Discriminator Field (apduType) (Used as input to a switch field)
-    apduType := uint8(child.ApduType())
-    _apduTypeErr := io.WriteUint8(4, (apduType))
-    if _apduTypeErr != nil {
-        return errors.New("Error serializing 'apduType' field " + _apduTypeErr.Error())
-    }
+	// Discriminator Field (apduType) (Used as input to a switch field)
+	apduType := uint8(child.ApduType())
+	_apduTypeErr := io.WriteUint8(4, (apduType))
+	if _apduTypeErr != nil {
+		return errors.New("Error serializing 'apduType' field " + _apduTypeErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *APDU) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUConfirmedRequest":
-                        var dt *APDUConfirmedRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUConfirmedRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUUnconfirmedRequest":
-                        var dt *APDUUnconfirmedRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUUnconfirmedRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUSimpleAck":
-                        var dt *APDUSimpleAck
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUSimpleAck)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUComplexAck":
-                        var dt *APDUComplexAck
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUComplexAck)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUSegmentAck":
-                        var dt *APDUSegmentAck
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUSegmentAck)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUError":
-                        var dt *APDUError
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUError)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUReject":
-                        var dt *APDUReject
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUReject)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.APDUAbort":
-                        var dt *APDUAbort
-                        if m.Child != nil {
-                            dt = m.Child.(*APDUAbort)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUConfirmedRequest":
+					var dt *APDUConfirmedRequest
+					if m.Child != nil {
+						dt = m.Child.(*APDUConfirmedRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUUnconfirmedRequest":
+					var dt *APDUUnconfirmedRequest
+					if m.Child != nil {
+						dt = m.Child.(*APDUUnconfirmedRequest)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUSimpleAck":
+					var dt *APDUSimpleAck
+					if m.Child != nil {
+						dt = m.Child.(*APDUSimpleAck)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUComplexAck":
+					var dt *APDUComplexAck
+					if m.Child != nil {
+						dt = m.Child.(*APDUComplexAck)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUSegmentAck":
+					var dt *APDUSegmentAck
+					if m.Child != nil {
+						dt = m.Child.(*APDUSegmentAck)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUError":
+					var dt *APDUError
+					if m.Child != nil {
+						dt = m.Child.(*APDUError)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUReject":
+					var dt *APDUReject
+					if m.Child != nil {
+						dt = m.Child.(*APDUReject)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.APDUAbort":
+					var dt *APDUAbort
+					if m.Child != nil {
+						dt = m.Child.(*APDUAbort)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *APDU) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
index 9402f03..d0b6d7c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
@@ -19,358 +19,359 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type BACnetConfirmedServiceACK struct {
-    Child IBACnetConfirmedServiceACKChild
-    IBACnetConfirmedServiceACK
-    IBACnetConfirmedServiceACKParent
+	Child IBACnetConfirmedServiceACKChild
+	IBACnetConfirmedServiceACK
+	IBACnetConfirmedServiceACKParent
 }
 
 // The corresponding interface
 type IBACnetConfirmedServiceACK interface {
-    ServiceChoice() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ServiceChoice() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBACnetConfirmedServiceACKParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBACnetConfirmedServiceACK, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBACnetConfirmedServiceACK, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBACnetConfirmedServiceACKChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BACnetConfirmedServiceACK)
-    GetTypeName() string
-    IBACnetConfirmedServiceACK
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BACnetConfirmedServiceACK)
+	GetTypeName() string
+	IBACnetConfirmedServiceACK
 }
 
 func NewBACnetConfirmedServiceACK() *BACnetConfirmedServiceACK {
-    return &BACnetConfirmedServiceACK{}
+	return &BACnetConfirmedServiceACK{}
 }
 
 func CastBACnetConfirmedServiceACK(structType interface{}) *BACnetConfirmedServiceACK {
-    castFunc := func(typ interface{}) *BACnetConfirmedServiceACK {
-        if casted, ok := typ.(BACnetConfirmedServiceACK); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BACnetConfirmedServiceACK); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BACnetConfirmedServiceACK {
+		if casted, ok := typ.(BACnetConfirmedServiceACK); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetConfirmedServiceACK); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BACnetConfirmedServiceACK) GetTypeName() string {
-    return "BACnetConfirmedServiceACK"
+	return "BACnetConfirmedServiceACK"
 }
 
 func (m *BACnetConfirmedServiceACK) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (serviceChoice)
-    lengthInBits += 8
+	// Discriminator Field (serviceChoice)
+	lengthInBits += 8
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BACnetConfirmedServiceACK) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BACnetConfirmedServiceACKParse(io *utils.ReadBuffer) (*BACnetConfirmedServiceACK, error) {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
-    if _serviceChoiceErr != nil {
-        return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
+	if _serviceChoiceErr != nil {
+		return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BACnetConfirmedServiceACK
-    var typeSwitchError error
-    switch {
-    case serviceChoice == 0x03:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKGetAlarmSummaryParse(io)
-    case serviceChoice == 0x04:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKGetEnrollmentSummaryParse(io)
-    case serviceChoice == 0x1D:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKGetEventInformationParse(io)
-    case serviceChoice == 0x06:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKAtomicReadFileParse(io)
-    case serviceChoice == 0x07:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKAtomicWriteFileParse(io)
-    case serviceChoice == 0x0A:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKCreateObjectParse(io)
-    case serviceChoice == 0x0C:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKReadPropertyParse(io)
-    case serviceChoice == 0x0E:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKReadPropertyMultipleParse(io)
-    case serviceChoice == 0x1A:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKReadRangeParse(io)
-    case serviceChoice == 0x12:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKConfirmedPrivateTransferParse(io)
-    case serviceChoice == 0x15:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKVTOpenParse(io)
-    case serviceChoice == 0x17:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKVTDataParse(io)
-    case serviceChoice == 0x18:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKRemovedAuthenticateParse(io)
-    case serviceChoice == 0x0D:
-        _parent, typeSwitchError = BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetConfirmedServiceACK
+	var typeSwitchError error
+	switch {
+	case serviceChoice == 0x03:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKGetAlarmSummaryParse(io)
+	case serviceChoice == 0x04:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKGetEnrollmentSummaryParse(io)
+	case serviceChoice == 0x1D:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKGetEventInformationParse(io)
+	case serviceChoice == 0x06:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKAtomicReadFileParse(io)
+	case serviceChoice == 0x07:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKAtomicWriteFileParse(io)
+	case serviceChoice == 0x0A:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKCreateObjectParse(io)
+	case serviceChoice == 0x0C:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKReadPropertyParse(io)
+	case serviceChoice == 0x0E:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKReadPropertyMultipleParse(io)
+	case serviceChoice == 0x1A:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKReadRangeParse(io)
+	case serviceChoice == 0x12:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKConfirmedPrivateTransferParse(io)
+	case serviceChoice == 0x15:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKVTOpenParse(io)
+	case serviceChoice == 0x17:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKVTDataParse(io)
+	case serviceChoice == 0x18:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKRemovedAuthenticateParse(io)
+	case serviceChoice == 0x0D:
+		_parent, typeSwitchError = BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *BACnetConfirmedServiceACK) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BACnetConfirmedServiceACK) SerializeParent(io utils.WriteBuffer, child IBACnetConfirmedServiceACK, serializeChildFunction func() error) error {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice := uint8(child.ServiceChoice())
-    _serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
-    if _serviceChoiceErr != nil {
-        return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice := uint8(child.ServiceChoice())
+	_serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
+	if _serviceChoiceErr != nil {
+		return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *BACnetConfirmedServiceACK) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKGetAlarmSummary":
-                        var dt *BACnetConfirmedServiceACKGetAlarmSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKGetAlarmSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKGetEnrollmentSummary":
-                        var dt *BACnetConfirmedServiceACKGetEnrollmentSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKGetEnrollmentSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKGetEventInformation":
-                        var dt *BACnetConfirmedServiceACKGetEventInformation
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKGetEventInformation)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKAtomicReadFile":
-                        var dt *BACnetConfirmedServiceACKAtomicReadFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKAtomicReadFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKAtomicWriteFile":
-                        var dt *BACnetConfirmedServiceACKAtomicWriteFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKAtomicWriteFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKCreateObject":
-                        var dt *BACnetConfirmedServiceACKCreateObject
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKCreateObject)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKReadProperty":
-                        var dt *BACnetConfirmedServiceACKReadProperty
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKReadProperty)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKReadPropertyMultiple":
-                        var dt *BACnetConfirmedServiceACKReadPropertyMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKReadPropertyMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKReadRange":
-                        var dt *BACnetConfirmedServiceACKReadRange
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKReadRange)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKConfirmedPrivateTransfer":
-                        var dt *BACnetConfirmedServiceACKConfirmedPrivateTransfer
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKConfirmedPrivateTransfer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKVTOpen":
-                        var dt *BACnetConfirmedServiceACKVTOpen
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKVTOpen)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKVTData":
-                        var dt *BACnetConfirmedServiceACKVTData
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKVTData)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKRemovedAuthenticate":
-                        var dt *BACnetConfirmedServiceACKRemovedAuthenticate
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKRemovedAuthenticate)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKRemovedReadPropertyConditional":
-                        var dt *BACnetConfirmedServiceACKRemovedReadPropertyConditional
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceACKRemovedReadPropertyConditional)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKGetAlarmSummary":
+					var dt *BACnetConfirmedServiceACKGetAlarmSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKGetAlarmSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKGetEnrollmentSummary":
+					var dt *BACnetConfirmedServiceACKGetEnrollmentSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKGetEnrollmentSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKGetEventInformation":
+					var dt *BACnetConfirmedServiceACKGetEventInformation
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKGetEventInformation)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKAtomicReadFile":
+					var dt *BACnetConfirmedServiceACKAtomicReadFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKAtomicReadFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKAtomicWriteFile":
+					var dt *BACnetConfirmedServiceACKAtomicWriteFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKAtomicWriteFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKCreateObject":
+					var dt *BACnetConfirmedServiceACKCreateObject
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKCreateObject)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKReadProperty":
+					var dt *BACnetConfirmedServiceACKReadProperty
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKReadProperty)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKReadPropertyMultiple":
+					var dt *BACnetConfirmedServiceACKReadPropertyMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKReadPropertyMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKReadRange":
+					var dt *BACnetConfirmedServiceACKReadRange
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKReadRange)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKConfirmedPrivateTransfer":
+					var dt *BACnetConfirmedServiceACKConfirmedPrivateTransfer
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKConfirmedPrivateTransfer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKVTOpen":
+					var dt *BACnetConfirmedServiceACKVTOpen
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKVTOpen)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKVTData":
+					var dt *BACnetConfirmedServiceACKVTData
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKVTData)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKRemovedAuthenticate":
+					var dt *BACnetConfirmedServiceACKRemovedAuthenticate
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKRemovedAuthenticate)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceACKRemovedReadPropertyConditional":
+					var dt *BACnetConfirmedServiceACKRemovedReadPropertyConditional
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceACKRemovedReadPropertyConditional)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BACnetConfirmedServiceACK) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
index 206f8b8..2e71c65 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
@@ -19,596 +19,597 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type BACnetConfirmedServiceRequest struct {
-    Child IBACnetConfirmedServiceRequestChild
-    IBACnetConfirmedServiceRequest
-    IBACnetConfirmedServiceRequestParent
+	Child IBACnetConfirmedServiceRequestChild
+	IBACnetConfirmedServiceRequest
+	IBACnetConfirmedServiceRequestParent
 }
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequest interface {
-    ServiceChoice() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ServiceChoice() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBACnetConfirmedServiceRequestParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBACnetConfirmedServiceRequest, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBACnetConfirmedServiceRequest, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBACnetConfirmedServiceRequestChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BACnetConfirmedServiceRequest)
-    GetTypeName() string
-    IBACnetConfirmedServiceRequest
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BACnetConfirmedServiceRequest)
+	GetTypeName() string
+	IBACnetConfirmedServiceRequest
 }
 
 func NewBACnetConfirmedServiceRequest() *BACnetConfirmedServiceRequest {
-    return &BACnetConfirmedServiceRequest{}
+	return &BACnetConfirmedServiceRequest{}
 }
 
 func CastBACnetConfirmedServiceRequest(structType interface{}) *BACnetConfirmedServiceRequest {
-    castFunc := func(typ interface{}) *BACnetConfirmedServiceRequest {
-        if casted, ok := typ.(BACnetConfirmedServiceRequest); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BACnetConfirmedServiceRequest); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BACnetConfirmedServiceRequest {
+		if casted, ok := typ.(BACnetConfirmedServiceRequest); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetConfirmedServiceRequest); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BACnetConfirmedServiceRequest) GetTypeName() string {
-    return "BACnetConfirmedServiceRequest"
+	return "BACnetConfirmedServiceRequest"
 }
 
 func (m *BACnetConfirmedServiceRequest) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (serviceChoice)
-    lengthInBits += 8
+	// Discriminator Field (serviceChoice)
+	lengthInBits += 8
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BACnetConfirmedServiceRequest) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BACnetConfirmedServiceRequestParse(io *utils.ReadBuffer, len uint16) (*BACnetConfirmedServiceRequest, error) {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
-    if _serviceChoiceErr != nil {
-        return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
+	if _serviceChoiceErr != nil {
+		return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BACnetConfirmedServiceRequest
-    var typeSwitchError error
-    switch {
-    case serviceChoice == 0x00:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestAcknowledgeAlarmParse(io)
-    case serviceChoice == 0x01:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io, len)
-    case serviceChoice == 0x02:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedEventNotificationParse(io)
-    case serviceChoice == 0x04:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(io)
-    case serviceChoice == 0x05:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVParse(io)
-    case serviceChoice == 0x06:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestAtomicReadFileParse(io)
-    case serviceChoice == 0x07:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestAtomicWriteFileParse(io)
-    case serviceChoice == 0x08:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestAddListElementParse(io)
-    case serviceChoice == 0x09:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestRemoveListElementParse(io)
-    case serviceChoice == 0x0A:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestCreateObjectParse(io)
-    case serviceChoice == 0x0B:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestDeleteObjectParse(io)
-    case serviceChoice == 0x0C:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestReadPropertyParse(io)
-    case serviceChoice == 0x0E:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestReadPropertyMultipleParse(io)
-    case serviceChoice == 0x0F:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestWritePropertyParse(io, len)
-    case serviceChoice == 0x10:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestWritePropertyMultipleParse(io)
-    case serviceChoice == 0x11:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestDeviceCommunicationControlParse(io)
-    case serviceChoice == 0x12:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(io)
-    case serviceChoice == 0x13:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedTextMessageParse(io)
-    case serviceChoice == 0x14:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestReinitializeDeviceParse(io)
-    case serviceChoice == 0x15:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestVTOpenParse(io)
-    case serviceChoice == 0x16:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestVTCloseParse(io)
-    case serviceChoice == 0x17:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestVTDataParse(io)
-    case serviceChoice == 0x18:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestRemovedAuthenticateParse(io)
-    case serviceChoice == 0x19:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestRemovedRequestKeyParse(io)
-    case serviceChoice == 0x0D:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestRemovedReadPropertyConditionalParse(io)
-    case serviceChoice == 0x1A:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestReadRangeParse(io)
-    case serviceChoice == 0x1B:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestLifeSafetyOperationParse(io)
-    case serviceChoice == 0x1C:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io)
-    case serviceChoice == 0x1D:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestGetEventInformationParse(io)
-    case serviceChoice == 0x1E:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io)
-    case serviceChoice == 0x1F:
-        _parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetConfirmedServiceRequest
+	var typeSwitchError error
+	switch {
+	case serviceChoice == 0x00:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestAcknowledgeAlarmParse(io)
+	case serviceChoice == 0x01:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io, len)
+	case serviceChoice == 0x02:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedEventNotificationParse(io)
+	case serviceChoice == 0x04:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(io)
+	case serviceChoice == 0x05:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVParse(io)
+	case serviceChoice == 0x06:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestAtomicReadFileParse(io)
+	case serviceChoice == 0x07:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestAtomicWriteFileParse(io)
+	case serviceChoice == 0x08:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestAddListElementParse(io)
+	case serviceChoice == 0x09:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestRemoveListElementParse(io)
+	case serviceChoice == 0x0A:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestCreateObjectParse(io)
+	case serviceChoice == 0x0B:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestDeleteObjectParse(io)
+	case serviceChoice == 0x0C:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestReadPropertyParse(io)
+	case serviceChoice == 0x0E:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestReadPropertyMultipleParse(io)
+	case serviceChoice == 0x0F:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestWritePropertyParse(io, len)
+	case serviceChoice == 0x10:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestWritePropertyMultipleParse(io)
+	case serviceChoice == 0x11:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestDeviceCommunicationControlParse(io)
+	case serviceChoice == 0x12:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(io)
+	case serviceChoice == 0x13:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedTextMessageParse(io)
+	case serviceChoice == 0x14:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestReinitializeDeviceParse(io)
+	case serviceChoice == 0x15:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestVTOpenParse(io)
+	case serviceChoice == 0x16:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestVTCloseParse(io)
+	case serviceChoice == 0x17:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestVTDataParse(io)
+	case serviceChoice == 0x18:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestRemovedAuthenticateParse(io)
+	case serviceChoice == 0x19:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestRemovedRequestKeyParse(io)
+	case serviceChoice == 0x0D:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestRemovedReadPropertyConditionalParse(io)
+	case serviceChoice == 0x1A:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestReadRangeParse(io)
+	case serviceChoice == 0x1B:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestLifeSafetyOperationParse(io)
+	case serviceChoice == 0x1C:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io)
+	case serviceChoice == 0x1D:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestGetEventInformationParse(io)
+	case serviceChoice == 0x1E:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io)
+	case serviceChoice == 0x1F:
+		_parent, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *BACnetConfirmedServiceRequest) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BACnetConfirmedServiceRequest) SerializeParent(io utils.WriteBuffer, child IBACnetConfirmedServiceRequest, serializeChildFunction func() error) error {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice := uint8(child.ServiceChoice())
-    _serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
-    if _serviceChoiceErr != nil {
-        return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice := uint8(child.ServiceChoice())
+	_serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
+	if _serviceChoiceErr != nil {
+		return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *BACnetConfirmedServiceRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAcknowledgeAlarm":
-                        var dt *BACnetConfirmedServiceRequestAcknowledgeAlarm
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestAcknowledgeAlarm)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedCOVNotification":
-                        var dt *BACnetConfirmedServiceRequestConfirmedCOVNotification
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedCOVNotification)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedEventNotification":
-                        var dt *BACnetConfirmedServiceRequestConfirmedEventNotification
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedEventNotification)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestGetEnrollmentSummary":
-                        var dt *BACnetConfirmedServiceRequestGetEnrollmentSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestGetEnrollmentSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestSubscribeCOV":
-                        var dt *BACnetConfirmedServiceRequestSubscribeCOV
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestSubscribeCOV)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAtomicReadFile":
-                        var dt *BACnetConfirmedServiceRequestAtomicReadFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestAtomicReadFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAtomicWriteFile":
-                        var dt *BACnetConfirmedServiceRequestAtomicWriteFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestAtomicWriteFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAddListElement":
-                        var dt *BACnetConfirmedServiceRequestAddListElement
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestAddListElement)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemoveListElement":
-                        var dt *BACnetConfirmedServiceRequestRemoveListElement
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestRemoveListElement)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestCreateObject":
-                        var dt *BACnetConfirmedServiceRequestCreateObject
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestCreateObject)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestDeleteObject":
-                        var dt *BACnetConfirmedServiceRequestDeleteObject
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestDeleteObject)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReadProperty":
-                        var dt *BACnetConfirmedServiceRequestReadProperty
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestReadProperty)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReadPropertyMultiple":
-                        var dt *BACnetConfirmedServiceRequestReadPropertyMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestReadPropertyMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestWriteProperty":
-                        var dt *BACnetConfirmedServiceRequestWriteProperty
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestWriteProperty)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestWritePropertyMultiple":
-                        var dt *BACnetConfirmedServiceRequestWritePropertyMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestWritePropertyMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestDeviceCommunicationControl":
-                        var dt *BACnetConfirmedServiceRequestDeviceCommunicationControl
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestDeviceCommunicationControl)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedPrivateTransfer":
-                        var dt *BACnetConfirmedServiceRequestConfirmedPrivateTransfer
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedPrivateTransfer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedTextMessage":
-                        var dt *BACnetConfirmedServiceRequestConfirmedTextMessage
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedTextMessage)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReinitializeDevice":
-                        var dt *BACnetConfirmedServiceRequestReinitializeDevice
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestReinitializeDevice)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestVTOpen":
-                        var dt *BACnetConfirmedServiceRequestVTOpen
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestVTOpen)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestVTClose":
-                        var dt *BACnetConfirmedServiceRequestVTClose
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestVTClose)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestVTData":
-                        var dt *BACnetConfirmedServiceRequestVTData
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestVTData)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemovedAuthenticate":
-                        var dt *BACnetConfirmedServiceRequestRemovedAuthenticate
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestRemovedAuthenticate)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemovedRequestKey":
-                        var dt *BACnetConfirmedServiceRequestRemovedRequestKey
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestRemovedRequestKey)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemovedReadPropertyConditional":
-                        var dt *BACnetConfirmedServiceRequestRemovedReadPropertyConditional
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestRemovedReadPropertyConditional)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReadRange":
-                        var dt *BACnetConfirmedServiceRequestReadRange
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestReadRange)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestLifeSafetyOperation":
-                        var dt *BACnetConfirmedServiceRequestLifeSafetyOperation
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestLifeSafetyOperation)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestSubscribeCOVProperty":
-                        var dt *BACnetConfirmedServiceRequestSubscribeCOVProperty
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestSubscribeCOVProperty)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestGetEventInformation":
-                        var dt *BACnetConfirmedServiceRequestGetEventInformation
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestGetEventInformation)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple":
-                        var dt *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple":
-                        var dt *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAcknowledgeAlarm":
+					var dt *BACnetConfirmedServiceRequestAcknowledgeAlarm
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestAcknowledgeAlarm)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedCOVNotification":
+					var dt *BACnetConfirmedServiceRequestConfirmedCOVNotification
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedCOVNotification)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedEventNotification":
+					var dt *BACnetConfirmedServiceRequestConfirmedEventNotification
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedEventNotification)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestGetEnrollmentSummary":
+					var dt *BACnetConfirmedServiceRequestGetEnrollmentSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestGetEnrollmentSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestSubscribeCOV":
+					var dt *BACnetConfirmedServiceRequestSubscribeCOV
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestSubscribeCOV)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAtomicReadFile":
+					var dt *BACnetConfirmedServiceRequestAtomicReadFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestAtomicReadFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAtomicWriteFile":
+					var dt *BACnetConfirmedServiceRequestAtomicWriteFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestAtomicWriteFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestAddListElement":
+					var dt *BACnetConfirmedServiceRequestAddListElement
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestAddListElement)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemoveListElement":
+					var dt *BACnetConfirmedServiceRequestRemoveListElement
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestRemoveListElement)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestCreateObject":
+					var dt *BACnetConfirmedServiceRequestCreateObject
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestCreateObject)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestDeleteObject":
+					var dt *BACnetConfirmedServiceRequestDeleteObject
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestDeleteObject)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReadProperty":
+					var dt *BACnetConfirmedServiceRequestReadProperty
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestReadProperty)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReadPropertyMultiple":
+					var dt *BACnetConfirmedServiceRequestReadPropertyMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestReadPropertyMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestWriteProperty":
+					var dt *BACnetConfirmedServiceRequestWriteProperty
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestWriteProperty)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestWritePropertyMultiple":
+					var dt *BACnetConfirmedServiceRequestWritePropertyMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestWritePropertyMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestDeviceCommunicationControl":
+					var dt *BACnetConfirmedServiceRequestDeviceCommunicationControl
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestDeviceCommunicationControl)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedPrivateTransfer":
+					var dt *BACnetConfirmedServiceRequestConfirmedPrivateTransfer
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedPrivateTransfer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedTextMessage":
+					var dt *BACnetConfirmedServiceRequestConfirmedTextMessage
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedTextMessage)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReinitializeDevice":
+					var dt *BACnetConfirmedServiceRequestReinitializeDevice
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestReinitializeDevice)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestVTOpen":
+					var dt *BACnetConfirmedServiceRequestVTOpen
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestVTOpen)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestVTClose":
+					var dt *BACnetConfirmedServiceRequestVTClose
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestVTClose)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestVTData":
+					var dt *BACnetConfirmedServiceRequestVTData
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestVTData)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemovedAuthenticate":
+					var dt *BACnetConfirmedServiceRequestRemovedAuthenticate
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestRemovedAuthenticate)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemovedRequestKey":
+					var dt *BACnetConfirmedServiceRequestRemovedRequestKey
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestRemovedRequestKey)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestRemovedReadPropertyConditional":
+					var dt *BACnetConfirmedServiceRequestRemovedReadPropertyConditional
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestRemovedReadPropertyConditional)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestReadRange":
+					var dt *BACnetConfirmedServiceRequestReadRange
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestReadRange)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestLifeSafetyOperation":
+					var dt *BACnetConfirmedServiceRequestLifeSafetyOperation
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestLifeSafetyOperation)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestSubscribeCOVProperty":
+					var dt *BACnetConfirmedServiceRequestSubscribeCOVProperty
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestSubscribeCOVProperty)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestGetEventInformation":
+					var dt *BACnetConfirmedServiceRequestGetEventInformation
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestGetEventInformation)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple":
+					var dt *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple":
+					var dt *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BACnetConfirmedServiceRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
index 88c8254..66cfbd1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
@@ -19,358 +19,359 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type BACnetError struct {
-    Child IBACnetErrorChild
-    IBACnetError
-    IBACnetErrorParent
+	Child IBACnetErrorChild
+	IBACnetError
+	IBACnetErrorParent
 }
 
 // The corresponding interface
 type IBACnetError interface {
-    ServiceChoice() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ServiceChoice() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBACnetErrorParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBACnetError, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBACnetError, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBACnetErrorChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BACnetError)
-    GetTypeName() string
-    IBACnetError
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BACnetError)
+	GetTypeName() string
+	IBACnetError
 }
 
 func NewBACnetError() *BACnetError {
-    return &BACnetError{}
+	return &BACnetError{}
 }
 
 func CastBACnetError(structType interface{}) *BACnetError {
-    castFunc := func(typ interface{}) *BACnetError {
-        if casted, ok := typ.(BACnetError); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BACnetError); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BACnetError {
+		if casted, ok := typ.(BACnetError); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetError); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BACnetError) GetTypeName() string {
-    return "BACnetError"
+	return "BACnetError"
 }
 
 func (m *BACnetError) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (serviceChoice)
-    lengthInBits += 8
+	// Discriminator Field (serviceChoice)
+	lengthInBits += 8
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BACnetError) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BACnetErrorParse(io *utils.ReadBuffer) (*BACnetError, error) {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
-    if _serviceChoiceErr != nil {
-        return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
+	if _serviceChoiceErr != nil {
+		return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BACnetError
-    var typeSwitchError error
-    switch {
-    case serviceChoice == 0x03:
-        _parent, typeSwitchError = BACnetErrorGetAlarmSummaryParse(io)
-    case serviceChoice == 0x04:
-        _parent, typeSwitchError = BACnetErrorGetEnrollmentSummaryParse(io)
-    case serviceChoice == 0x1D:
-        _parent, typeSwitchError = BACnetErrorGetEventInformationParse(io)
-    case serviceChoice == 0x06:
-        _parent, typeSwitchError = BACnetErrorAtomicReadFileParse(io)
-    case serviceChoice == 0x07:
-        _parent, typeSwitchError = BACnetErrorAtomicWriteFileParse(io)
-    case serviceChoice == 0x0A:
-        _parent, typeSwitchError = BACnetErrorCreateObjectParse(io)
-    case serviceChoice == 0x0C:
-        _parent, typeSwitchError = BACnetErrorReadPropertyParse(io)
-    case serviceChoice == 0x0E:
-        _parent, typeSwitchError = BACnetErrorReadPropertyMultipleParse(io)
-    case serviceChoice == 0x1A:
-        _parent, typeSwitchError = BACnetErrorReadRangeParse(io)
-    case serviceChoice == 0x12:
-        _parent, typeSwitchError = BACnetErrorConfirmedPrivateTransferParse(io)
-    case serviceChoice == 0x15:
-        _parent, typeSwitchError = BACnetErrorVTOpenParse(io)
-    case serviceChoice == 0x17:
-        _parent, typeSwitchError = BACnetErrorVTDataParse(io)
-    case serviceChoice == 0x18:
-        _parent, typeSwitchError = BACnetErrorRemovedAuthenticateParse(io)
-    case serviceChoice == 0x0D:
-        _parent, typeSwitchError = BACnetErrorRemovedReadPropertyConditionalParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetError
+	var typeSwitchError error
+	switch {
+	case serviceChoice == 0x03:
+		_parent, typeSwitchError = BACnetErrorGetAlarmSummaryParse(io)
+	case serviceChoice == 0x04:
+		_parent, typeSwitchError = BACnetErrorGetEnrollmentSummaryParse(io)
+	case serviceChoice == 0x1D:
+		_parent, typeSwitchError = BACnetErrorGetEventInformationParse(io)
+	case serviceChoice == 0x06:
+		_parent, typeSwitchError = BACnetErrorAtomicReadFileParse(io)
+	case serviceChoice == 0x07:
+		_parent, typeSwitchError = BACnetErrorAtomicWriteFileParse(io)
+	case serviceChoice == 0x0A:
+		_parent, typeSwitchError = BACnetErrorCreateObjectParse(io)
+	case serviceChoice == 0x0C:
+		_parent, typeSwitchError = BACnetErrorReadPropertyParse(io)
+	case serviceChoice == 0x0E:
+		_parent, typeSwitchError = BACnetErrorReadPropertyMultipleParse(io)
+	case serviceChoice == 0x1A:
+		_parent, typeSwitchError = BACnetErrorReadRangeParse(io)
+	case serviceChoice == 0x12:
+		_parent, typeSwitchError = BACnetErrorConfirmedPrivateTransferParse(io)
+	case serviceChoice == 0x15:
+		_parent, typeSwitchError = BACnetErrorVTOpenParse(io)
+	case serviceChoice == 0x17:
+		_parent, typeSwitchError = BACnetErrorVTDataParse(io)
+	case serviceChoice == 0x18:
+		_parent, typeSwitchError = BACnetErrorRemovedAuthenticateParse(io)
+	case serviceChoice == 0x0D:
+		_parent, typeSwitchError = BACnetErrorRemovedReadPropertyConditionalParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *BACnetError) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BACnetError) SerializeParent(io utils.WriteBuffer, child IBACnetError, serializeChildFunction func() error) error {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice := uint8(child.ServiceChoice())
-    _serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
-    if _serviceChoiceErr != nil {
-        return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice := uint8(child.ServiceChoice())
+	_serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
+	if _serviceChoiceErr != nil {
+		return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *BACnetError) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorGetAlarmSummary":
-                        var dt *BACnetErrorGetAlarmSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorGetAlarmSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorGetEnrollmentSummary":
-                        var dt *BACnetErrorGetEnrollmentSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorGetEnrollmentSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorGetEventInformation":
-                        var dt *BACnetErrorGetEventInformation
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorGetEventInformation)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorAtomicReadFile":
-                        var dt *BACnetErrorAtomicReadFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorAtomicReadFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorAtomicWriteFile":
-                        var dt *BACnetErrorAtomicWriteFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorAtomicWriteFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorCreateObject":
-                        var dt *BACnetErrorCreateObject
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorCreateObject)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorReadProperty":
-                        var dt *BACnetErrorReadProperty
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorReadProperty)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorReadPropertyMultiple":
-                        var dt *BACnetErrorReadPropertyMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorReadPropertyMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorReadRange":
-                        var dt *BACnetErrorReadRange
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorReadRange)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorConfirmedPrivateTransfer":
-                        var dt *BACnetErrorConfirmedPrivateTransfer
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorConfirmedPrivateTransfer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorVTOpen":
-                        var dt *BACnetErrorVTOpen
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorVTOpen)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorVTData":
-                        var dt *BACnetErrorVTData
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorVTData)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorRemovedAuthenticate":
-                        var dt *BACnetErrorRemovedAuthenticate
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorRemovedAuthenticate)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorRemovedReadPropertyConditional":
-                        var dt *BACnetErrorRemovedReadPropertyConditional
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetErrorRemovedReadPropertyConditional)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorGetAlarmSummary":
+					var dt *BACnetErrorGetAlarmSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorGetAlarmSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorGetEnrollmentSummary":
+					var dt *BACnetErrorGetEnrollmentSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorGetEnrollmentSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorGetEventInformation":
+					var dt *BACnetErrorGetEventInformation
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorGetEventInformation)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorAtomicReadFile":
+					var dt *BACnetErrorAtomicReadFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorAtomicReadFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorAtomicWriteFile":
+					var dt *BACnetErrorAtomicWriteFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorAtomicWriteFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorCreateObject":
+					var dt *BACnetErrorCreateObject
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorCreateObject)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorReadProperty":
+					var dt *BACnetErrorReadProperty
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorReadProperty)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorReadPropertyMultiple":
+					var dt *BACnetErrorReadPropertyMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorReadPropertyMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorReadRange":
+					var dt *BACnetErrorReadRange
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorReadRange)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorConfirmedPrivateTransfer":
+					var dt *BACnetErrorConfirmedPrivateTransfer
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorConfirmedPrivateTransfer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorVTOpen":
+					var dt *BACnetErrorVTOpen
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorVTOpen)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorVTData":
+					var dt *BACnetErrorVTData
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorVTData)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorRemovedAuthenticate":
+					var dt *BACnetErrorRemovedAuthenticate
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorRemovedAuthenticate)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetErrorRemovedReadPropertyConditional":
+					var dt *BACnetErrorRemovedReadPropertyConditional
+					if m.Child != nil {
+						dt = m.Child.(*BACnetErrorRemovedReadPropertyConditional)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BACnetError) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
index 214f686..12ede46 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
@@ -19,358 +19,359 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type BACnetServiceAck struct {
-    Child IBACnetServiceAckChild
-    IBACnetServiceAck
-    IBACnetServiceAckParent
+	Child IBACnetServiceAckChild
+	IBACnetServiceAck
+	IBACnetServiceAckParent
 }
 
 // The corresponding interface
 type IBACnetServiceAck interface {
-    ServiceChoice() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ServiceChoice() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBACnetServiceAckParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBACnetServiceAck, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBACnetServiceAck, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBACnetServiceAckChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BACnetServiceAck)
-    GetTypeName() string
-    IBACnetServiceAck
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BACnetServiceAck)
+	GetTypeName() string
+	IBACnetServiceAck
 }
 
 func NewBACnetServiceAck() *BACnetServiceAck {
-    return &BACnetServiceAck{}
+	return &BACnetServiceAck{}
 }
 
 func CastBACnetServiceAck(structType interface{}) *BACnetServiceAck {
-    castFunc := func(typ interface{}) *BACnetServiceAck {
-        if casted, ok := typ.(BACnetServiceAck); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BACnetServiceAck); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BACnetServiceAck {
+		if casted, ok := typ.(BACnetServiceAck); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetServiceAck); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BACnetServiceAck) GetTypeName() string {
-    return "BACnetServiceAck"
+	return "BACnetServiceAck"
 }
 
 func (m *BACnetServiceAck) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (serviceChoice)
-    lengthInBits += 8
+	// Discriminator Field (serviceChoice)
+	lengthInBits += 8
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BACnetServiceAck) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BACnetServiceAckParse(io *utils.ReadBuffer) (*BACnetServiceAck, error) {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
-    if _serviceChoiceErr != nil {
-        return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
+	if _serviceChoiceErr != nil {
+		return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BACnetServiceAck
-    var typeSwitchError error
-    switch {
-    case serviceChoice == 0x03:
-        _parent, typeSwitchError = BACnetServiceAckGetAlarmSummaryParse(io)
-    case serviceChoice == 0x04:
-        _parent, typeSwitchError = BACnetServiceAckGetEnrollmentSummaryParse(io)
-    case serviceChoice == 0x1D:
-        _parent, typeSwitchError = BACnetServiceAckGetEventInformationParse(io)
-    case serviceChoice == 0x06:
-        _parent, typeSwitchError = BACnetServiceAckAtomicReadFileParse(io)
-    case serviceChoice == 0x07:
-        _parent, typeSwitchError = BACnetServiceAckAtomicWriteFileParse(io)
-    case serviceChoice == 0x0A:
-        _parent, typeSwitchError = BACnetServiceAckCreateObjectParse(io)
-    case serviceChoice == 0x0C:
-        _parent, typeSwitchError = BACnetServiceAckReadPropertyParse(io)
-    case serviceChoice == 0x0E:
-        _parent, typeSwitchError = BACnetServiceAckReadPropertyMultipleParse(io)
-    case serviceChoice == 0x1A:
-        _parent, typeSwitchError = BACnetServiceAckReadRangeParse(io)
-    case serviceChoice == 0x12:
-        _parent, typeSwitchError = BACnetServiceAckConfirmedPrivateTransferParse(io)
-    case serviceChoice == 0x15:
-        _parent, typeSwitchError = BACnetServiceAckVTOpenParse(io)
-    case serviceChoice == 0x17:
-        _parent, typeSwitchError = BACnetServiceAckVTDataParse(io)
-    case serviceChoice == 0x18:
-        _parent, typeSwitchError = BACnetServiceAckRemovedAuthenticateParse(io)
-    case serviceChoice == 0x0D:
-        _parent, typeSwitchError = BACnetServiceAckRemovedReadPropertyConditionalParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetServiceAck
+	var typeSwitchError error
+	switch {
+	case serviceChoice == 0x03:
+		_parent, typeSwitchError = BACnetServiceAckGetAlarmSummaryParse(io)
+	case serviceChoice == 0x04:
+		_parent, typeSwitchError = BACnetServiceAckGetEnrollmentSummaryParse(io)
+	case serviceChoice == 0x1D:
+		_parent, typeSwitchError = BACnetServiceAckGetEventInformationParse(io)
+	case serviceChoice == 0x06:
+		_parent, typeSwitchError = BACnetServiceAckAtomicReadFileParse(io)
+	case serviceChoice == 0x07:
+		_parent, typeSwitchError = BACnetServiceAckAtomicWriteFileParse(io)
+	case serviceChoice == 0x0A:
+		_parent, typeSwitchError = BACnetServiceAckCreateObjectParse(io)
+	case serviceChoice == 0x0C:
+		_parent, typeSwitchError = BACnetServiceAckReadPropertyParse(io)
+	case serviceChoice == 0x0E:
+		_parent, typeSwitchError = BACnetServiceAckReadPropertyMultipleParse(io)
+	case serviceChoice == 0x1A:
+		_parent, typeSwitchError = BACnetServiceAckReadRangeParse(io)
+	case serviceChoice == 0x12:
+		_parent, typeSwitchError = BACnetServiceAckConfirmedPrivateTransferParse(io)
+	case serviceChoice == 0x15:
+		_parent, typeSwitchError = BACnetServiceAckVTOpenParse(io)
+	case serviceChoice == 0x17:
+		_parent, typeSwitchError = BACnetServiceAckVTDataParse(io)
+	case serviceChoice == 0x18:
+		_parent, typeSwitchError = BACnetServiceAckRemovedAuthenticateParse(io)
+	case serviceChoice == 0x0D:
+		_parent, typeSwitchError = BACnetServiceAckRemovedReadPropertyConditionalParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *BACnetServiceAck) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BACnetServiceAck) SerializeParent(io utils.WriteBuffer, child IBACnetServiceAck, serializeChildFunction func() error) error {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice := uint8(child.ServiceChoice())
-    _serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
-    if _serviceChoiceErr != nil {
-        return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice := uint8(child.ServiceChoice())
+	_serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
+	if _serviceChoiceErr != nil {
+		return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *BACnetServiceAck) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckGetAlarmSummary":
-                        var dt *BACnetServiceAckGetAlarmSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckGetAlarmSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckGetEnrollmentSummary":
-                        var dt *BACnetServiceAckGetEnrollmentSummary
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckGetEnrollmentSummary)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckGetEventInformation":
-                        var dt *BACnetServiceAckGetEventInformation
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckGetEventInformation)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckAtomicReadFile":
-                        var dt *BACnetServiceAckAtomicReadFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckAtomicReadFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckAtomicWriteFile":
-                        var dt *BACnetServiceAckAtomicWriteFile
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckAtomicWriteFile)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckCreateObject":
-                        var dt *BACnetServiceAckCreateObject
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckCreateObject)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckReadProperty":
-                        var dt *BACnetServiceAckReadProperty
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckReadProperty)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckReadPropertyMultiple":
-                        var dt *BACnetServiceAckReadPropertyMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckReadPropertyMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckReadRange":
-                        var dt *BACnetServiceAckReadRange
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckReadRange)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckConfirmedPrivateTransfer":
-                        var dt *BACnetServiceAckConfirmedPrivateTransfer
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckConfirmedPrivateTransfer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckVTOpen":
-                        var dt *BACnetServiceAckVTOpen
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckVTOpen)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckVTData":
-                        var dt *BACnetServiceAckVTData
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckVTData)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckRemovedAuthenticate":
-                        var dt *BACnetServiceAckRemovedAuthenticate
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckRemovedAuthenticate)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckRemovedReadPropertyConditional":
-                        var dt *BACnetServiceAckRemovedReadPropertyConditional
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetServiceAckRemovedReadPropertyConditional)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckGetAlarmSummary":
+					var dt *BACnetServiceAckGetAlarmSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckGetAlarmSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckGetEnrollmentSummary":
+					var dt *BACnetServiceAckGetEnrollmentSummary
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckGetEnrollmentSummary)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckGetEventInformation":
+					var dt *BACnetServiceAckGetEventInformation
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckGetEventInformation)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckAtomicReadFile":
+					var dt *BACnetServiceAckAtomicReadFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckAtomicReadFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckAtomicWriteFile":
+					var dt *BACnetServiceAckAtomicWriteFile
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckAtomicWriteFile)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckCreateObject":
+					var dt *BACnetServiceAckCreateObject
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckCreateObject)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckReadProperty":
+					var dt *BACnetServiceAckReadProperty
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckReadProperty)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckReadPropertyMultiple":
+					var dt *BACnetServiceAckReadPropertyMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckReadPropertyMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckReadRange":
+					var dt *BACnetServiceAckReadRange
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckReadRange)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckConfirmedPrivateTransfer":
+					var dt *BACnetServiceAckConfirmedPrivateTransfer
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckConfirmedPrivateTransfer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckVTOpen":
+					var dt *BACnetServiceAckVTOpen
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckVTOpen)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckVTData":
+					var dt *BACnetServiceAckVTData
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckVTData)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckRemovedAuthenticate":
+					var dt *BACnetServiceAckRemovedAuthenticate
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckRemovedAuthenticate)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetServiceAckRemovedReadPropertyConditional":
+					var dt *BACnetServiceAckRemovedReadPropertyConditional
+					if m.Child != nil {
+						dt = m.Child.(*BACnetServiceAckRemovedReadPropertyConditional)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BACnetServiceAck) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
index c5293ba..629816d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -19,480 +19,481 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type BACnetTag struct {
-    TypeOrTagNumber uint8
-    LengthValueType uint8
-    ExtTagNumber *uint8
-    ExtLength *uint8
-    Child IBACnetTagChild
-    IBACnetTag
-    IBACnetTagParent
+	TypeOrTagNumber uint8
+	LengthValueType uint8
+	ExtTagNumber    *uint8
+	ExtLength       *uint8
+	Child           IBACnetTagChild
+	IBACnetTag
+	IBACnetTagParent
 }
 
 // The corresponding interface
 type IBACnetTag interface {
-    ContextSpecificTag() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ContextSpecificTag() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBACnetTagParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBACnetTag, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBACnetTag, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBACnetTagChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BACnetTag, typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8)
-    GetTypeName() string
-    IBACnetTag
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BACnetTag, typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8)
+	GetTypeName() string
+	IBACnetTag
 }
 
 func NewBACnetTag(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) *BACnetTag {
-    return &BACnetTag{TypeOrTagNumber: typeOrTagNumber, LengthValueType: lengthValueType, ExtTagNumber: extTagNumber, ExtLength: extLength}
+	return &BACnetTag{TypeOrTagNumber: typeOrTagNumber, LengthValueType: lengthValueType, ExtTagNumber: extTagNumber, ExtLength: extLength}
 }
 
 func CastBACnetTag(structType interface{}) *BACnetTag {
-    castFunc := func(typ interface{}) *BACnetTag {
-        if casted, ok := typ.(BACnetTag); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BACnetTag); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BACnetTag {
+		if casted, ok := typ.(BACnetTag); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetTag); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BACnetTag) GetTypeName() string {
-    return "BACnetTag"
+	return "BACnetTag"
 }
 
 func (m *BACnetTag) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Simple field (typeOrTagNumber)
-    lengthInBits += 4
+	// Simple field (typeOrTagNumber)
+	lengthInBits += 4
 
-    // Discriminator Field (contextSpecificTag)
-    lengthInBits += 1
+	// Discriminator Field (contextSpecificTag)
+	lengthInBits += 1
 
-    // Simple field (lengthValueType)
-    lengthInBits += 3
+	// Simple field (lengthValueType)
+	lengthInBits += 3
 
-    // Optional Field (extTagNumber)
-    if m.ExtTagNumber != nil {
-        lengthInBits += 8
-    }
+	// Optional Field (extTagNumber)
+	if m.ExtTagNumber != nil {
+		lengthInBits += 8
+	}
 
-    // Optional Field (extLength)
-    if m.ExtLength != nil {
-        lengthInBits += 8
-    }
+	// Optional Field (extLength)
+	if m.ExtLength != nil {
+		lengthInBits += 8
+	}
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BACnetTag) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BACnetTagParse(io *utils.ReadBuffer) (*BACnetTag, error) {
 
-    // Simple Field (typeOrTagNumber)
-    typeOrTagNumber, _typeOrTagNumberErr := io.ReadUint8(4)
-    if _typeOrTagNumberErr != nil {
-        return nil, errors.New("Error parsing 'typeOrTagNumber' field " + _typeOrTagNumberErr.Error())
-    }
-
-    // Discriminator Field (contextSpecificTag) (Used as input to a switch field)
-    contextSpecificTag, _contextSpecificTagErr := io.ReadUint8(1)
-    if _contextSpecificTagErr != nil {
-        return nil, errors.New("Error parsing 'contextSpecificTag' field " + _contextSpecificTagErr.Error())
-    }
-
-    // Simple Field (lengthValueType)
-    lengthValueType, _lengthValueTypeErr := io.ReadUint8(3)
-    if _lengthValueTypeErr != nil {
-        return nil, errors.New("Error parsing 'lengthValueType' field " + _lengthValueTypeErr.Error())
-    }
-
-    // Optional Field (extTagNumber) (Can be skipped, if a given expression evaluates to false)
-    var extTagNumber *uint8 = nil
-    if bool((typeOrTagNumber) == ((15))) {
-        _val, _err := io.ReadUint8(8)
-        if _err != nil {
-            return nil, errors.New("Error parsing 'extTagNumber' field " + _err.Error())
-        }
-        extTagNumber = &_val
-    }
-
-    // Optional Field (extLength) (Can be skipped, if a given expression evaluates to false)
-    var extLength *uint8 = nil
-    if bool((lengthValueType) == ((5))) {
-        _val, _err := io.ReadUint8(8)
-        if _err != nil {
-            return nil, errors.New("Error parsing 'extLength' field " + _err.Error())
-        }
-        extLength = &_val
-    }
-
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BACnetTag
-    var typeSwitchError error
-    switch {
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x0:
-        _parent, typeSwitchError = BACnetTagApplicationNullParse(io)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x1:
-        _parent, typeSwitchError = BACnetTagApplicationBooleanParse(io)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x2:
-        _parent, typeSwitchError = BACnetTagApplicationUnsignedIntegerParse(io, lengthValueType, *extLength)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x3:
-        _parent, typeSwitchError = BACnetTagApplicationSignedIntegerParse(io, lengthValueType, *extLength)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x4:
-        _parent, typeSwitchError = BACnetTagApplicationRealParse(io, lengthValueType, *extLength)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x5:
-        _parent, typeSwitchError = BACnetTagApplicationDoubleParse(io, lengthValueType, *extLength)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x6:
-        _parent, typeSwitchError = BACnetTagApplicationOctetStringParse(io)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x7:
-        _parent, typeSwitchError = BACnetTagApplicationCharacterStringParse(io)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x8:
-        _parent, typeSwitchError = BACnetTagApplicationBitStringParse(io, lengthValueType, *extLength)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0x9:
-        _parent, typeSwitchError = BACnetTagApplicationEnumeratedParse(io, lengthValueType, *extLength)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0xA:
-        _parent, typeSwitchError = BACnetTagApplicationDateParse(io)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0xB:
-        _parent, typeSwitchError = BACnetTagApplicationTimeParse(io)
-    case contextSpecificTag == 0 && typeOrTagNumber == 0xC:
-        _parent, typeSwitchError = BACnetTagApplicationObjectIdentifierParse(io)
-    case contextSpecificTag == 1:
-        _parent, typeSwitchError = BACnetTagContextParse(io, typeOrTagNumber, *extTagNumber, lengthValueType, *extLength)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
-
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent, typeOrTagNumber, lengthValueType, extTagNumber, extLength)
-    return _parent, nil
+	// Simple Field (typeOrTagNumber)
+	typeOrTagNumber, _typeOrTagNumberErr := io.ReadUint8(4)
+	if _typeOrTagNumberErr != nil {
+		return nil, errors.New("Error parsing 'typeOrTagNumber' field " + _typeOrTagNumberErr.Error())
+	}
+
+	// Discriminator Field (contextSpecificTag) (Used as input to a switch field)
+	contextSpecificTag, _contextSpecificTagErr := io.ReadUint8(1)
+	if _contextSpecificTagErr != nil {
+		return nil, errors.New("Error parsing 'contextSpecificTag' field " + _contextSpecificTagErr.Error())
+	}
+
+	// Simple Field (lengthValueType)
+	lengthValueType, _lengthValueTypeErr := io.ReadUint8(3)
+	if _lengthValueTypeErr != nil {
+		return nil, errors.New("Error parsing 'lengthValueType' field " + _lengthValueTypeErr.Error())
+	}
+
+	// Optional Field (extTagNumber) (Can be skipped, if a given expression evaluates to false)
+	var extTagNumber *uint8 = nil
+	if bool((typeOrTagNumber) == (15)) {
+		_val, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'extTagNumber' field " + _err.Error())
+		}
+		extTagNumber = &_val
+	}
+
+	// Optional Field (extLength) (Can be skipped, if a given expression evaluates to false)
+	var extLength *uint8 = nil
+	if bool((lengthValueType) == (5)) {
+		_val, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'extLength' field " + _err.Error())
+		}
+		extLength = &_val
+	}
+
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetTag
+	var typeSwitchError error
+	switch {
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x0:
+		_parent, typeSwitchError = BACnetTagApplicationNullParse(io)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x1:
+		_parent, typeSwitchError = BACnetTagApplicationBooleanParse(io)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x2:
+		_parent, typeSwitchError = BACnetTagApplicationUnsignedIntegerParse(io, lengthValueType, *extLength)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x3:
+		_parent, typeSwitchError = BACnetTagApplicationSignedIntegerParse(io, lengthValueType, *extLength)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x4:
+		_parent, typeSwitchError = BACnetTagApplicationRealParse(io, lengthValueType, *extLength)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x5:
+		_parent, typeSwitchError = BACnetTagApplicationDoubleParse(io, lengthValueType, *extLength)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x6:
+		_parent, typeSwitchError = BACnetTagApplicationOctetStringParse(io)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x7:
+		_parent, typeSwitchError = BACnetTagApplicationCharacterStringParse(io)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x8:
+		_parent, typeSwitchError = BACnetTagApplicationBitStringParse(io, lengthValueType, *extLength)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0x9:
+		_parent, typeSwitchError = BACnetTagApplicationEnumeratedParse(io, lengthValueType, *extLength)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0xA:
+		_parent, typeSwitchError = BACnetTagApplicationDateParse(io)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0xB:
+		_parent, typeSwitchError = BACnetTagApplicationTimeParse(io)
+	case contextSpecificTag == 0 && typeOrTagNumber == 0xC:
+		_parent, typeSwitchError = BACnetTagApplicationObjectIdentifierParse(io)
+	case contextSpecificTag == 1:
+		_parent, typeSwitchError = BACnetTagContextParse(io, typeOrTagNumber, *extTagNumber, lengthValueType, *extLength)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
+
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent, typeOrTagNumber, lengthValueType, extTagNumber, extLength)
+	return _parent, nil
 }
 
 func (m *BACnetTag) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BACnetTag) SerializeParent(io utils.WriteBuffer, child IBACnetTag, serializeChildFunction func() error) error {
 
-    // Simple Field (typeOrTagNumber)
-    typeOrTagNumber := uint8(m.TypeOrTagNumber)
-    _typeOrTagNumberErr := io.WriteUint8(4, (typeOrTagNumber))
-    if _typeOrTagNumberErr != nil {
-        return errors.New("Error serializing 'typeOrTagNumber' field " + _typeOrTagNumberErr.Error())
-    }
-
-    // Discriminator Field (contextSpecificTag) (Used as input to a switch field)
-    contextSpecificTag := uint8(child.ContextSpecificTag())
-    _contextSpecificTagErr := io.WriteUint8(1, (contextSpecificTag))
-    if _contextSpecificTagErr != nil {
-        return errors.New("Error serializing 'contextSpecificTag' field " + _contextSpecificTagErr.Error())
-    }
-
-    // Simple Field (lengthValueType)
-    lengthValueType := uint8(m.LengthValueType)
-    _lengthValueTypeErr := io.WriteUint8(3, (lengthValueType))
-    if _lengthValueTypeErr != nil {
-        return errors.New("Error serializing 'lengthValueType' field " + _lengthValueTypeErr.Error())
-    }
-
-    // Optional Field (extTagNumber) (Can be skipped, if the value is null)
-    var extTagNumber *uint8 = nil
-    if m.ExtTagNumber != nil {
-        extTagNumber = m.ExtTagNumber
-        _extTagNumberErr := io.WriteUint8(8, *(extTagNumber))
-        if _extTagNumberErr != nil {
-            return errors.New("Error serializing 'extTagNumber' field " + _extTagNumberErr.Error())
-        }
-    }
-
-    // Optional Field (extLength) (Can be skipped, if the value is null)
-    var extLength *uint8 = nil
-    if m.ExtLength != nil {
-        extLength = m.ExtLength
-        _extLengthErr := io.WriteUint8(8, *(extLength))
-        if _extLengthErr != nil {
-            return errors.New("Error serializing 'extLength' field " + _extLengthErr.Error())
-        }
-    }
-
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
-
-    return nil
+	// Simple Field (typeOrTagNumber)
+	typeOrTagNumber := uint8(m.TypeOrTagNumber)
+	_typeOrTagNumberErr := io.WriteUint8(4, (typeOrTagNumber))
+	if _typeOrTagNumberErr != nil {
+		return errors.New("Error serializing 'typeOrTagNumber' field " + _typeOrTagNumberErr.Error())
+	}
+
+	// Discriminator Field (contextSpecificTag) (Used as input to a switch field)
+	contextSpecificTag := uint8(child.ContextSpecificTag())
+	_contextSpecificTagErr := io.WriteUint8(1, (contextSpecificTag))
+	if _contextSpecificTagErr != nil {
+		return errors.New("Error serializing 'contextSpecificTag' field " + _contextSpecificTagErr.Error())
+	}
+
+	// Simple Field (lengthValueType)
+	lengthValueType := uint8(m.LengthValueType)
+	_lengthValueTypeErr := io.WriteUint8(3, (lengthValueType))
+	if _lengthValueTypeErr != nil {
+		return errors.New("Error serializing 'lengthValueType' field " + _lengthValueTypeErr.Error())
+	}
+
+	// Optional Field (extTagNumber) (Can be skipped, if the value is null)
+	var extTagNumber *uint8 = nil
+	if m.ExtTagNumber != nil {
+		extTagNumber = m.ExtTagNumber
+		_extTagNumberErr := io.WriteUint8(8, *(extTagNumber))
+		if _extTagNumberErr != nil {
+			return errors.New("Error serializing 'extTagNumber' field " + _extTagNumberErr.Error())
+		}
+	}
+
+	// Optional Field (extLength) (Can be skipped, if the value is null)
+	var extLength *uint8 = nil
+	if m.ExtLength != nil {
+		extLength = m.ExtLength
+		_extLengthErr := io.WriteUint8(8, *(extLength))
+		if _extLengthErr != nil {
+			return errors.New("Error serializing 'extLength' field " + _extLengthErr.Error())
+		}
+	}
+
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
+
+	return nil
 }
 
 func (m *BACnetTag) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "typeOrTagNumber":
-                var data uint8
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.TypeOrTagNumber = data
-            case "lengthValueType":
-                var data uint8
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.LengthValueType = data
-            case "extTagNumber":
-                var data *uint8
-                if err := d.DecodeElement(data, &tok); err != nil {
-                    return err
-                }
-                m.ExtTagNumber = data
-            case "extLength":
-                var data *uint8
-                if err := d.DecodeElement(data, &tok); err != nil {
-                    return err
-                }
-                m.ExtLength = data
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationNull":
-                        var dt *BACnetTagApplicationNull
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationNull)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationBoolean":
-                        var dt *BACnetTagApplicationBoolean
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationBoolean)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationUnsignedInteger":
-                        var dt *BACnetTagApplicationUnsignedInteger
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationUnsignedInteger)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationSignedInteger":
-                        var dt *BACnetTagApplicationSignedInteger
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationSignedInteger)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationReal":
-                        var dt *BACnetTagApplicationReal
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationReal)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationDouble":
-                        var dt *BACnetTagApplicationDouble
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationDouble)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationOctetString":
-                        var dt *BACnetTagApplicationOctetString
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationOctetString)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationCharacterString":
-                        var dt *BACnetTagApplicationCharacterString
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationCharacterString)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationBitString":
-                        var dt *BACnetTagApplicationBitString
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationBitString)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationEnumerated":
-                        var dt *BACnetTagApplicationEnumerated
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationEnumerated)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationDate":
-                        var dt *BACnetTagApplicationDate
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationDate)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationTime":
-                        var dt *BACnetTagApplicationTime
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationTime)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationObjectIdentifier":
-                        var dt *BACnetTagApplicationObjectIdentifier
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagApplicationObjectIdentifier)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagContext":
-                        var dt *BACnetTagContext
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetTagContext)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "typeOrTagNumber":
+				var data uint8
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.TypeOrTagNumber = data
+			case "lengthValueType":
+				var data uint8
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.LengthValueType = data
+			case "extTagNumber":
+				var data *uint8
+				if err := d.DecodeElement(data, &tok); err != nil {
+					return err
+				}
+				m.ExtTagNumber = data
+			case "extLength":
+				var data *uint8
+				if err := d.DecodeElement(data, &tok); err != nil {
+					return err
+				}
+				m.ExtLength = data
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationNull":
+					var dt *BACnetTagApplicationNull
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationNull)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationBoolean":
+					var dt *BACnetTagApplicationBoolean
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationBoolean)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationUnsignedInteger":
+					var dt *BACnetTagApplicationUnsignedInteger
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationUnsignedInteger)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationSignedInteger":
+					var dt *BACnetTagApplicationSignedInteger
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationSignedInteger)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationReal":
+					var dt *BACnetTagApplicationReal
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationReal)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationDouble":
+					var dt *BACnetTagApplicationDouble
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationDouble)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationOctetString":
+					var dt *BACnetTagApplicationOctetString
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationOctetString)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationCharacterString":
+					var dt *BACnetTagApplicationCharacterString
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationCharacterString)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationBitString":
+					var dt *BACnetTagApplicationBitString
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationBitString)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationEnumerated":
+					var dt *BACnetTagApplicationEnumerated
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationEnumerated)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationDate":
+					var dt *BACnetTagApplicationDate
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationDate)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationTime":
+					var dt *BACnetTagApplicationTime
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationTime)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationObjectIdentifier":
+					var dt *BACnetTagApplicationObjectIdentifier
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagApplicationObjectIdentifier)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagContext":
+					var dt *BACnetTagContext
+					if m.Child != nil {
+						dt = m.Child.(*BACnetTagContext)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BACnetTag) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.TypeOrTagNumber, xml.StartElement{Name: xml.Name{Local: "typeOrTagNumber"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.LengthValueType, xml.StartElement{Name: xml.Name{Local: "lengthValueType"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ExtTagNumber, xml.StartElement{Name: xml.Name{Local: "extTagNumber"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ExtLength, xml.StartElement{Name: xml.Name{Local: "extLength"}}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.TypeOrTagNumber, xml.StartElement{Name: xml.Name{Local: "typeOrTagNumber"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.LengthValueType, xml.StartElement{Name: xml.Name{Local: "lengthValueType"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ExtTagNumber, xml.StartElement{Name: xml.Name{Local: "extTagNumber"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ExtLength, xml.StartElement{Name: xml.Name{Local: "extLength"}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
index f1aac0f..f6e92fc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
@@ -19,330 +19,331 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type BACnetUnconfirmedServiceRequest struct {
-    Child IBACnetUnconfirmedServiceRequestChild
-    IBACnetUnconfirmedServiceRequest
-    IBACnetUnconfirmedServiceRequestParent
+	Child IBACnetUnconfirmedServiceRequestChild
+	IBACnetUnconfirmedServiceRequest
+	IBACnetUnconfirmedServiceRequestParent
 }
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequest interface {
-    ServiceChoice() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ServiceChoice() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBACnetUnconfirmedServiceRequestParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBACnetUnconfirmedServiceRequest, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBACnetUnconfirmedServiceRequest, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBACnetUnconfirmedServiceRequestChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BACnetUnconfirmedServiceRequest)
-    GetTypeName() string
-    IBACnetUnconfirmedServiceRequest
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BACnetUnconfirmedServiceRequest)
+	GetTypeName() string
+	IBACnetUnconfirmedServiceRequest
 }
 
 func NewBACnetUnconfirmedServiceRequest() *BACnetUnconfirmedServiceRequest {
-    return &BACnetUnconfirmedServiceRequest{}
+	return &BACnetUnconfirmedServiceRequest{}
 }
 
 func CastBACnetUnconfirmedServiceRequest(structType interface{}) *BACnetUnconfirmedServiceRequest {
-    castFunc := func(typ interface{}) *BACnetUnconfirmedServiceRequest {
-        if casted, ok := typ.(BACnetUnconfirmedServiceRequest); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BACnetUnconfirmedServiceRequest); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BACnetUnconfirmedServiceRequest {
+		if casted, ok := typ.(BACnetUnconfirmedServiceRequest); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetUnconfirmedServiceRequest); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BACnetUnconfirmedServiceRequest) GetTypeName() string {
-    return "BACnetUnconfirmedServiceRequest"
+	return "BACnetUnconfirmedServiceRequest"
 }
 
 func (m *BACnetUnconfirmedServiceRequest) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (serviceChoice)
-    lengthInBits += 8
+	// Discriminator Field (serviceChoice)
+	lengthInBits += 8
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BACnetUnconfirmedServiceRequest) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BACnetUnconfirmedServiceRequestParse(io *utils.ReadBuffer, len uint16) (*BACnetUnconfirmedServiceRequest, error) {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
-    if _serviceChoiceErr != nil {
-        return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
+	if _serviceChoiceErr != nil {
+		return nil, errors.New("Error parsing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BACnetUnconfirmedServiceRequest
-    var typeSwitchError error
-    switch {
-    case serviceChoice == 0x00:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestIAmParse(io)
-    case serviceChoice == 0x01:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestIHaveParse(io)
-    case serviceChoice == 0x02:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationParse(io)
-    case serviceChoice == 0x03:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedEventNotificationParse(io)
-    case serviceChoice == 0x04:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransferParse(io, len)
-    case serviceChoice == 0x05:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedTextMessageParse(io)
-    case serviceChoice == 0x06:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestTimeSynchronizationParse(io)
-    case serviceChoice == 0x07:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestWhoHasParse(io)
-    case serviceChoice == 0x08:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestWhoIsParse(io)
-    case serviceChoice == 0x09:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestUTCTimeSynchronizationParse(io)
-    case serviceChoice == 0x0A:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestWriteGroupParse(io)
-    case serviceChoice == 0x0B:
-        _parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultipleParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetUnconfirmedServiceRequest
+	var typeSwitchError error
+	switch {
+	case serviceChoice == 0x00:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestIAmParse(io)
+	case serviceChoice == 0x01:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestIHaveParse(io)
+	case serviceChoice == 0x02:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationParse(io)
+	case serviceChoice == 0x03:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedEventNotificationParse(io)
+	case serviceChoice == 0x04:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransferParse(io, len)
+	case serviceChoice == 0x05:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedTextMessageParse(io)
+	case serviceChoice == 0x06:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestTimeSynchronizationParse(io)
+	case serviceChoice == 0x07:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestWhoHasParse(io)
+	case serviceChoice == 0x08:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestWhoIsParse(io)
+	case serviceChoice == 0x09:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestUTCTimeSynchronizationParse(io)
+	case serviceChoice == 0x0A:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestWriteGroupParse(io)
+	case serviceChoice == 0x0B:
+		_parent, typeSwitchError = BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultipleParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *BACnetUnconfirmedServiceRequest) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BACnetUnconfirmedServiceRequest) SerializeParent(io utils.WriteBuffer, child IBACnetUnconfirmedServiceRequest, serializeChildFunction func() error) error {
 
-    // Discriminator Field (serviceChoice) (Used as input to a switch field)
-    serviceChoice := uint8(child.ServiceChoice())
-    _serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
-    if _serviceChoiceErr != nil {
-        return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
-    }
+	// Discriminator Field (serviceChoice) (Used as input to a switch field)
+	serviceChoice := uint8(child.ServiceChoice())
+	_serviceChoiceErr := io.WriteUint8(8, (serviceChoice))
+	if _serviceChoiceErr != nil {
+		return errors.New("Error serializing 'serviceChoice' field " + _serviceChoiceErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *BACnetUnconfirmedServiceRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestIAm":
-                        var dt *BACnetUnconfirmedServiceRequestIAm
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestIAm)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestIHave":
-                        var dt *BACnetUnconfirmedServiceRequestIHave
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestIHave)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification":
-                        var dt *BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedEventNotification":
-                        var dt *BACnetUnconfirmedServiceRequestUnconfirmedEventNotification
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedEventNotification)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer":
-                        var dt *BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedTextMessage":
-                        var dt *BACnetUnconfirmedServiceRequestUnconfirmedTextMessage
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedTextMessage)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestTimeSynchronization":
-                        var dt *BACnetUnconfirmedServiceRequestTimeSynchronization
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestTimeSynchronization)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestWhoHas":
-                        var dt *BACnetUnconfirmedServiceRequestWhoHas
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestWhoHas)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestWhoIs":
-                        var dt *BACnetUnconfirmedServiceRequestWhoIs
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestWhoIs)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUTCTimeSynchronization":
-                        var dt *BACnetUnconfirmedServiceRequestUTCTimeSynchronization
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestUTCTimeSynchronization)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestWriteGroup":
-                        var dt *BACnetUnconfirmedServiceRequestWriteGroup
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestWriteGroup)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple":
-                        var dt *BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple
-                        if m.Child != nil {
-                            dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestIAm":
+					var dt *BACnetUnconfirmedServiceRequestIAm
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestIAm)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestIHave":
+					var dt *BACnetUnconfirmedServiceRequestIHave
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestIHave)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification":
+					var dt *BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedEventNotification":
+					var dt *BACnetUnconfirmedServiceRequestUnconfirmedEventNotification
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedEventNotification)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer":
+					var dt *BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedTextMessage":
+					var dt *BACnetUnconfirmedServiceRequestUnconfirmedTextMessage
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedTextMessage)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestTimeSynchronization":
+					var dt *BACnetUnconfirmedServiceRequestTimeSynchronization
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestTimeSynchronization)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestWhoHas":
+					var dt *BACnetUnconfirmedServiceRequestWhoHas
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestWhoHas)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestWhoIs":
+					var dt *BACnetUnconfirmedServiceRequestWhoIs
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestWhoIs)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUTCTimeSynchronization":
+					var dt *BACnetUnconfirmedServiceRequestUTCTimeSynchronization
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestUTCTimeSynchronization)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestWriteGroup":
+					var dt *BACnetUnconfirmedServiceRequestWriteGroup
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestWriteGroup)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple":
+					var dt *BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple
+					if m.Child != nil {
+						dt = m.Child.(*BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BACnetUnconfirmedServiceRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
index 2172a7f..371e530 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
@@ -19,13 +19,13 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "strconv"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strconv"
+	"strings"
 )
 
 // Constant values.
@@ -33,368 +33,369 @@ const BVLC_BACNETTYPE uint8 = 0x81
 
 // The data-structure of this message
 type BVLC struct {
-    Child IBVLCChild
-    IBVLC
-    IBVLCParent
+	Child IBVLCChild
+	IBVLC
+	IBVLCParent
 }
 
 // The corresponding interface
 type IBVLC interface {
-    BvlcFunction() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	BvlcFunction() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IBVLCParent interface {
-    SerializeParent(io utils.WriteBuffer, child IBVLC, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IBVLC, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IBVLCChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *BVLC)
-    GetTypeName() string
-    IBVLC
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *BVLC)
+	GetTypeName() string
+	IBVLC
 }
 
 func NewBVLC() *BVLC {
-    return &BVLC{}
+	return &BVLC{}
 }
 
 func CastBVLC(structType interface{}) *BVLC {
-    castFunc := func(typ interface{}) *BVLC {
-        if casted, ok := typ.(BVLC); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*BVLC); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *BVLC {
+		if casted, ok := typ.(BVLC); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BVLC); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *BVLC) GetTypeName() string {
-    return "BVLC"
+	return "BVLC"
 }
 
 func (m *BVLC) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Const Field (bacnetType)
-    lengthInBits += 8
+	// Const Field (bacnetType)
+	lengthInBits += 8
 
-    // Discriminator Field (bvlcFunction)
-    lengthInBits += 8
+	// Discriminator Field (bvlcFunction)
+	lengthInBits += 8
 
-    // Implicit Field (bvlcLength)
-    lengthInBits += 16
+	// Implicit Field (bvlcLength)
+	lengthInBits += 16
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *BVLC) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func BVLCParse(io *utils.ReadBuffer) (*BVLC, error) {
 
-    // Const Field (bacnetType)
-    bacnetType, _bacnetTypeErr := io.ReadUint8(8)
-    if _bacnetTypeErr != nil {
-        return nil, errors.New("Error parsing 'bacnetType' field " + _bacnetTypeErr.Error())
-    }
-    if bacnetType != BVLC_BACNETTYPE {
-        return nil, errors.New("Expected constant value " + strconv.Itoa(int(BVLC_BACNETTYPE)) + " but got " + strconv.Itoa(int(bacnetType)))
-    }
-
-    // Discriminator Field (bvlcFunction) (Used as input to a switch field)
-    bvlcFunction, _bvlcFunctionErr := io.ReadUint8(8)
-    if _bvlcFunctionErr != nil {
-        return nil, errors.New("Error parsing 'bvlcFunction' field " + _bvlcFunctionErr.Error())
-    }
-
-    // Implicit Field (bvlcLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-    bvlcLength, _bvlcLengthErr := io.ReadUint16(16)
-    if _bvlcLengthErr != nil {
-        return nil, errors.New("Error parsing 'bvlcLength' field " + _bvlcLengthErr.Error())
-    }
-
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *BVLC
-    var typeSwitchError error
-    switch {
-    case bvlcFunction == 0x00:
-        _parent, typeSwitchError = BVLCResultParse(io)
-    case bvlcFunction == 0x01:
-        _parent, typeSwitchError = BVLCWideBroadcastDistributionTableParse(io)
-    case bvlcFunction == 0x02:
-        _parent, typeSwitchError = BVLCReadBroadcastDistributionTableParse(io)
-    case bvlcFunction == 0x03:
-        _parent, typeSwitchError = BVLCReadBroadcastDistributionTableAckParse(io)
-    case bvlcFunction == 0x04:
-        _parent, typeSwitchError = BVLCForwardedNPDUParse(io, bvlcLength)
-    case bvlcFunction == 0x05:
-        _parent, typeSwitchError = BVLCRegisterForeignDeviceParse(io)
-    case bvlcFunction == 0x06:
-        _parent, typeSwitchError = BVLCReadForeignDeviceTableParse(io)
-    case bvlcFunction == 0x07:
-        _parent, typeSwitchError = BVLCReadForeignDeviceTableAckParse(io)
-    case bvlcFunction == 0x08:
-        _parent, typeSwitchError = BVLCDeleteForeignDeviceTableEntryParse(io)
-    case bvlcFunction == 0x09:
-        _parent, typeSwitchError = BVLCDistributeBroadcastToNetworkParse(io)
-    case bvlcFunction == 0x0A:
-        _parent, typeSwitchError = BVLCOriginalUnicastNPDUParse(io, bvlcLength)
-    case bvlcFunction == 0x0B:
-        _parent, typeSwitchError = BVLCOriginalBroadcastNPDUParse(io, bvlcLength)
-    case bvlcFunction == 0x0C:
-        _parent, typeSwitchError = BVLCSecureBVLLParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
-
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Const Field (bacnetType)
+	bacnetType, _bacnetTypeErr := io.ReadUint8(8)
+	if _bacnetTypeErr != nil {
+		return nil, errors.New("Error parsing 'bacnetType' field " + _bacnetTypeErr.Error())
+	}
+	if bacnetType != BVLC_BACNETTYPE {
+		return nil, errors.New("Expected constant value " + strconv.Itoa(int(BVLC_BACNETTYPE)) + " but got " + strconv.Itoa(int(bacnetType)))
+	}
+
+	// Discriminator Field (bvlcFunction) (Used as input to a switch field)
+	bvlcFunction, _bvlcFunctionErr := io.ReadUint8(8)
+	if _bvlcFunctionErr != nil {
+		return nil, errors.New("Error parsing 'bvlcFunction' field " + _bvlcFunctionErr.Error())
+	}
+
+	// Implicit Field (bvlcLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	bvlcLength, _bvlcLengthErr := io.ReadUint16(16)
+	if _bvlcLengthErr != nil {
+		return nil, errors.New("Error parsing 'bvlcLength' field " + _bvlcLengthErr.Error())
+	}
+
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BVLC
+	var typeSwitchError error
+	switch {
+	case bvlcFunction == 0x00:
+		_parent, typeSwitchError = BVLCResultParse(io)
+	case bvlcFunction == 0x01:
+		_parent, typeSwitchError = BVLCWideBroadcastDistributionTableParse(io)
+	case bvlcFunction == 0x02:
+		_parent, typeSwitchError = BVLCReadBroadcastDistributionTableParse(io)
+	case bvlcFunction == 0x03:
+		_parent, typeSwitchError = BVLCReadBroadcastDistributionTableAckParse(io)
+	case bvlcFunction == 0x04:
+		_parent, typeSwitchError = BVLCForwardedNPDUParse(io, bvlcLength)
+	case bvlcFunction == 0x05:
+		_parent, typeSwitchError = BVLCRegisterForeignDeviceParse(io)
+	case bvlcFunction == 0x06:
+		_parent, typeSwitchError = BVLCReadForeignDeviceTableParse(io)
+	case bvlcFunction == 0x07:
+		_parent, typeSwitchError = BVLCReadForeignDeviceTableAckParse(io)
+	case bvlcFunction == 0x08:
+		_parent, typeSwitchError = BVLCDeleteForeignDeviceTableEntryParse(io)
+	case bvlcFunction == 0x09:
+		_parent, typeSwitchError = BVLCDistributeBroadcastToNetworkParse(io)
+	case bvlcFunction == 0x0A:
+		_parent, typeSwitchError = BVLCOriginalUnicastNPDUParse(io, bvlcLength)
+	case bvlcFunction == 0x0B:
+		_parent, typeSwitchError = BVLCOriginalBroadcastNPDUParse(io, bvlcLength)
+	case bvlcFunction == 0x0C:
+		_parent, typeSwitchError = BVLCSecureBVLLParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
+
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *BVLC) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *BVLC) SerializeParent(io utils.WriteBuffer, child IBVLC, serializeChildFunction func() error) error {
 
-    // Const Field (bacnetType)
-    _bacnetTypeErr := io.WriteUint8(8, 0x81)
-    if _bacnetTypeErr != nil {
-        return errors.New("Error serializing 'bacnetType' field " + _bacnetTypeErr.Error())
-    }
-
-    // Discriminator Field (bvlcFunction) (Used as input to a switch field)
-    bvlcFunction := uint8(child.BvlcFunction())
-    _bvlcFunctionErr := io.WriteUint8(8, (bvlcFunction))
-    if _bvlcFunctionErr != nil {
-        return errors.New("Error serializing 'bvlcFunction' field " + _bvlcFunctionErr.Error())
-    }
-
-    // Implicit Field (bvlcLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-    bvlcLength := uint16(uint16(m.LengthInBytes()))
-    _bvlcLengthErr := io.WriteUint16(16, (bvlcLength))
-    if _bvlcLengthErr != nil {
-        return errors.New("Error serializing 'bvlcLength' field " + _bvlcLengthErr.Error())
-    }
-
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
-
-    return nil
+	// Const Field (bacnetType)
+	_bacnetTypeErr := io.WriteUint8(8, 0x81)
+	if _bacnetTypeErr != nil {
+		return errors.New("Error serializing 'bacnetType' field " + _bacnetTypeErr.Error())
+	}
+
+	// Discriminator Field (bvlcFunction) (Used as input to a switch field)
+	bvlcFunction := uint8(child.BvlcFunction())
+	_bvlcFunctionErr := io.WriteUint8(8, (bvlcFunction))
+	if _bvlcFunctionErr != nil {
+		return errors.New("Error serializing 'bvlcFunction' field " + _bvlcFunctionErr.Error())
+	}
+
+	// Implicit Field (bvlcLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	bvlcLength := uint16(uint16(m.LengthInBytes()))
+	_bvlcLengthErr := io.WriteUint16(16, (bvlcLength))
+	if _bvlcLengthErr != nil {
+		return errors.New("Error serializing 'bvlcLength' field " + _bvlcLengthErr.Error())
+	}
+
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
+
+	return nil
 }
 
 func (m *BVLC) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCResult":
-                        var dt *BVLCResult
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCResult)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCWideBroadcastDistributionTable":
-                        var dt *BVLCWideBroadcastDistributionTable
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCWideBroadcastDistributionTable)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadBroadcastDistributionTable":
-                        var dt *BVLCReadBroadcastDistributionTable
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCReadBroadcastDistributionTable)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadBroadcastDistributionTableAck":
-                        var dt *BVLCReadBroadcastDistributionTableAck
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCReadBroadcastDistributionTableAck)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCForwardedNPDU":
-                        var dt *BVLCForwardedNPDU
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCForwardedNPDU)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCRegisterForeignDevice":
-                        var dt *BVLCRegisterForeignDevice
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCRegisterForeignDevice)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadForeignDeviceTable":
-                        var dt *BVLCReadForeignDeviceTable
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCReadForeignDeviceTable)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadForeignDeviceTableAck":
-                        var dt *BVLCReadForeignDeviceTableAck
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCReadForeignDeviceTableAck)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCDeleteForeignDeviceTableEntry":
-                        var dt *BVLCDeleteForeignDeviceTableEntry
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCDeleteForeignDeviceTableEntry)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCDistributeBroadcastToNetwork":
-                        var dt *BVLCDistributeBroadcastToNetwork
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCDistributeBroadcastToNetwork)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCOriginalUnicastNPDU":
-                        var dt *BVLCOriginalUnicastNPDU
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCOriginalUnicastNPDU)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCOriginalBroadcastNPDU":
-                        var dt *BVLCOriginalBroadcastNPDU
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCOriginalBroadcastNPDU)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.BVLCSecureBVLL":
-                        var dt *BVLCSecureBVLL
-                        if m.Child != nil {
-                            dt = m.Child.(*BVLCSecureBVLL)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCResult":
+					var dt *BVLCResult
+					if m.Child != nil {
+						dt = m.Child.(*BVLCResult)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCWideBroadcastDistributionTable":
+					var dt *BVLCWideBroadcastDistributionTable
+					if m.Child != nil {
+						dt = m.Child.(*BVLCWideBroadcastDistributionTable)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadBroadcastDistributionTable":
+					var dt *BVLCReadBroadcastDistributionTable
+					if m.Child != nil {
+						dt = m.Child.(*BVLCReadBroadcastDistributionTable)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadBroadcastDistributionTableAck":
+					var dt *BVLCReadBroadcastDistributionTableAck
+					if m.Child != nil {
+						dt = m.Child.(*BVLCReadBroadcastDistributionTableAck)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCForwardedNPDU":
+					var dt *BVLCForwardedNPDU
+					if m.Child != nil {
+						dt = m.Child.(*BVLCForwardedNPDU)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCRegisterForeignDevice":
+					var dt *BVLCRegisterForeignDevice
+					if m.Child != nil {
+						dt = m.Child.(*BVLCRegisterForeignDevice)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadForeignDeviceTable":
+					var dt *BVLCReadForeignDeviceTable
+					if m.Child != nil {
+						dt = m.Child.(*BVLCReadForeignDeviceTable)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCReadForeignDeviceTableAck":
+					var dt *BVLCReadForeignDeviceTableAck
+					if m.Child != nil {
+						dt = m.Child.(*BVLCReadForeignDeviceTableAck)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCDeleteForeignDeviceTableEntry":
+					var dt *BVLCDeleteForeignDeviceTableEntry
+					if m.Child != nil {
+						dt = m.Child.(*BVLCDeleteForeignDeviceTableEntry)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCDistributeBroadcastToNetwork":
+					var dt *BVLCDistributeBroadcastToNetwork
+					if m.Child != nil {
+						dt = m.Child.(*BVLCDistributeBroadcastToNetwork)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCOriginalUnicastNPDU":
+					var dt *BVLCOriginalUnicastNPDU
+					if m.Child != nil {
+						dt = m.Child.(*BVLCOriginalUnicastNPDU)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCOriginalBroadcastNPDU":
+					var dt *BVLCOriginalBroadcastNPDU
+					if m.Child != nil {
+						dt = m.Child.(*BVLCOriginalBroadcastNPDU)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.BVLCSecureBVLL":
+					var dt *BVLCSecureBVLL
+					if m.Child != nil {
+						dt = m.Child.(*BVLCSecureBVLL)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *BVLC) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
index 8d9a8fd..5689eb5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
@@ -19,225 +19,226 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type NLM struct {
-    VendorId *uint16
-    Child INLMChild
-    INLM
-    INLMParent
+	VendorId *uint16
+	Child    INLMChild
+	INLM
+	INLMParent
 }
 
 // The corresponding interface
 type INLM interface {
-    MessageType() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	MessageType() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type INLMParent interface {
-    SerializeParent(io utils.WriteBuffer, child INLM, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child INLM, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type INLMChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *NLM, vendorId *uint16)
-    GetTypeName() string
-    INLM
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *NLM, vendorId *uint16)
+	GetTypeName() string
+	INLM
 }
 
 func NewNLM(vendorId *uint16) *NLM {
-    return &NLM{VendorId: vendorId}
+	return &NLM{VendorId: vendorId}
 }
 
 func CastNLM(structType interface{}) *NLM {
-    castFunc := func(typ interface{}) *NLM {
-        if casted, ok := typ.(NLM); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*NLM); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *NLM {
+		if casted, ok := typ.(NLM); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*NLM); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *NLM) GetTypeName() string {
-    return "NLM"
+	return "NLM"
 }
 
 func (m *NLM) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (messageType)
-    lengthInBits += 8
+	// Discriminator Field (messageType)
+	lengthInBits += 8
 
-    // Optional Field (vendorId)
-    if m.VendorId != nil {
-        lengthInBits += 16
-    }
+	// Optional Field (vendorId)
+	if m.VendorId != nil {
+		lengthInBits += 16
+	}
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *NLM) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func NLMParse(io *utils.ReadBuffer, apduLength uint16) (*NLM, error) {
 
-    // Discriminator Field (messageType) (Used as input to a switch field)
-    messageType, _messageTypeErr := io.ReadUint8(8)
-    if _messageTypeErr != nil {
-        return nil, errors.New("Error parsing 'messageType' field " + _messageTypeErr.Error())
-    }
-
-    // Optional Field (vendorId) (Can be skipped, if a given expression evaluates to false)
-    var vendorId *uint16 = nil
-    if bool(bool(bool((messageType) >= ((128))))) && bool(bool(bool((messageType) <= ((255))))) {
-        _val, _err := io.ReadUint16(16)
-        if _err != nil {
-            return nil, errors.New("Error parsing 'vendorId' field " + _err.Error())
-        }
-        vendorId = &_val
-    }
-
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *NLM
-    var typeSwitchError error
-    switch {
-    case messageType == 0x0:
-        _parent, typeSwitchError = NLMWhoIsRouterToNetworkParse(io, apduLength, messageType)
-    case messageType == 0x1:
-        _parent, typeSwitchError = NLMIAmRouterToNetworkParse(io, apduLength, messageType)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
-
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent, vendorId)
-    return _parent, nil
+	// Discriminator Field (messageType) (Used as input to a switch field)
+	messageType, _messageTypeErr := io.ReadUint8(8)
+	if _messageTypeErr != nil {
+		return nil, errors.New("Error parsing 'messageType' field " + _messageTypeErr.Error())
+	}
+
+	// Optional Field (vendorId) (Can be skipped, if a given expression evaluates to false)
+	var vendorId *uint16 = nil
+	if bool(bool(bool((messageType) >= (128)))) && bool(bool(bool((messageType) <= (255)))) {
+		_val, _err := io.ReadUint16(16)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'vendorId' field " + _err.Error())
+		}
+		vendorId = &_val
+	}
+
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *NLM
+	var typeSwitchError error
+	switch {
+	case messageType == 0x0:
+		_parent, typeSwitchError = NLMWhoIsRouterToNetworkParse(io, apduLength, messageType)
+	case messageType == 0x1:
+		_parent, typeSwitchError = NLMIAmRouterToNetworkParse(io, apduLength, messageType)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
+
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent, vendorId)
+	return _parent, nil
 }
 
 func (m *NLM) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *NLM) SerializeParent(io utils.WriteBuffer, child INLM, serializeChildFunction func() error) error {
 
-    // Discriminator Field (messageType) (Used as input to a switch field)
-    messageType := uint8(child.MessageType())
-    _messageTypeErr := io.WriteUint8(8, (messageType))
-    if _messageTypeErr != nil {
-        return errors.New("Error serializing 'messageType' field " + _messageTypeErr.Error())
-    }
-
-    // Optional Field (vendorId) (Can be skipped, if the value is null)
-    var vendorId *uint16 = nil
-    if m.VendorId != nil {
-        vendorId = m.VendorId
-        _vendorIdErr := io.WriteUint16(16, *(vendorId))
-        if _vendorIdErr != nil {
-            return errors.New("Error serializing 'vendorId' field " + _vendorIdErr.Error())
-        }
-    }
-
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
-
-    return nil
+	// Discriminator Field (messageType) (Used as input to a switch field)
+	messageType := uint8(child.MessageType())
+	_messageTypeErr := io.WriteUint8(8, (messageType))
+	if _messageTypeErr != nil {
+		return errors.New("Error serializing 'messageType' field " + _messageTypeErr.Error())
+	}
+
+	// Optional Field (vendorId) (Can be skipped, if the value is null)
+	var vendorId *uint16 = nil
+	if m.VendorId != nil {
+		vendorId = m.VendorId
+		_vendorIdErr := io.WriteUint16(16, *(vendorId))
+		if _vendorIdErr != nil {
+			return errors.New("Error serializing 'vendorId' field " + _vendorIdErr.Error())
+		}
+	}
+
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
+
+	return nil
 }
 
 func (m *NLM) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "vendorId":
-                var data *uint16
-                if err := d.DecodeElement(data, &tok); err != nil {
-                    return err
-                }
-                m.VendorId = data
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.bacnetip.readwrite.NLMWhoIsRouterToNetwork":
-                        var dt *NLMWhoIsRouterToNetwork
-                        if m.Child != nil {
-                            dt = m.Child.(*NLMWhoIsRouterToNetwork)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.bacnetip.readwrite.NLMIAmRouterToNetwork":
-                        var dt *NLMIAmRouterToNetwork
-                        if m.Child != nil {
-                            dt = m.Child.(*NLMIAmRouterToNetwork)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "vendorId":
+				var data *uint16
+				if err := d.DecodeElement(data, &tok); err != nil {
+					return err
+				}
+				m.VendorId = data
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.bacnetip.readwrite.NLMWhoIsRouterToNetwork":
+					var dt *NLMWhoIsRouterToNetwork
+					if m.Child != nil {
+						dt = m.Child.(*NLMWhoIsRouterToNetwork)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.bacnetip.readwrite.NLMIAmRouterToNetwork":
+					var dt *NLMIAmRouterToNetwork
+					if m.Child != nil {
+						dt = m.Child.(*NLMIAmRouterToNetwork)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *NLM) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.VendorId, xml.StartElement{Name: xml.Name{Local: "vendorId"}}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.bacnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.VendorId, xml.StartElement{Name: xml.Name{Local: "vendorId"}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go b/plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go
index f575a6a..129bd0b 100644
--- a/plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go
+++ b/plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go
@@ -49,13 +49,13 @@ func NewKnxNetIpBrowser(connection *KnxNetIpConnection, messageCodec spi.Message
 	}
 }
 
-func (b KnxNetIpBrowser) Browse(browseRequest apiModel.PlcBrowseRequest) <-chan apiModel.PlcBrowseRequestResult {
-	return b.BrowseWithInterceptor(browseRequest, func(result apiModel.PlcBrowseEvent) bool {
+func (m KnxNetIpBrowser) Browse(browseRequest apiModel.PlcBrowseRequest) <-chan apiModel.PlcBrowseRequestResult {
+	return m.BrowseWithInterceptor(browseRequest, func(result apiModel.PlcBrowseEvent) bool {
 		return true
 	})
 }
 
-func (b KnxNetIpBrowser) BrowseWithInterceptor(browseRequest apiModel.PlcBrowseRequest, interceptor func(result apiModel.PlcBrowseEvent) bool) <-chan apiModel.PlcBrowseRequestResult {
+func (m KnxNetIpBrowser) BrowseWithInterceptor(browseRequest apiModel.PlcBrowseRequest, interceptor func(result apiModel.PlcBrowseEvent) bool) <-chan apiModel.PlcBrowseRequestResult {
 	result := make(chan apiModel.PlcBrowseRequestResult)
 	sendResult := func(browseResponse apiModel.PlcBrowseResponse, err error) {
 		result <- apiModel.PlcBrowseRequestResult{
@@ -69,7 +69,7 @@ func (b KnxNetIpBrowser) BrowseWithInterceptor(browseRequest apiModel.PlcBrowseR
 		results := map[string][]apiModel.PlcBrowseQueryResult{}
 		for _, queryName := range browseRequest.GetQueryNames() {
 			queryString := browseRequest.GetQueryString(queryName)
-			field, err := b.connection.fieldHandler.ParseQuery(queryString)
+			field, err := m.connection.fieldHandler.ParseQuery(queryString)
 			if err != nil {
 				sendResult(nil, err)
 				return
@@ -77,7 +77,7 @@ func (b KnxNetIpBrowser) BrowseWithInterceptor(browseRequest apiModel.PlcBrowseR
 
 			switch field.(type) {
 			case KnxNetIpDeviceQueryField:
-				queryResults, err := b.executeDeviceQuery(field.(KnxNetIpDeviceQueryField), browseRequest, queryName, interceptor)
+				queryResults, err := m.executeDeviceQuery(field.(KnxNetIpDeviceQueryField), browseRequest, queryName, interceptor)
 				if err != nil {
 					// TODO: Return some sort of return code like with the read and write APIs
 					results[queryName] = nil
@@ -85,7 +85,7 @@ func (b KnxNetIpBrowser) BrowseWithInterceptor(browseRequest apiModel.PlcBrowseR
 					results[queryName] = queryResults
 				}
 			case KnxNetIpCommunicationObjectQueryField:
-				queryResults, err := b.executeCommunicationObjectQuery(field.(KnxNetIpCommunicationObjectQueryField))
+				queryResults, err := m.executeCommunicationObjectQuery(field.(KnxNetIpCommunicationObjectQueryField))
 				if err != nil {
 					// TODO: Return some sort of return code like with the read and write APIs
 					results[queryName] = nil
@@ -102,9 +102,9 @@ func (b KnxNetIpBrowser) BrowseWithInterceptor(browseRequest apiModel.PlcBrowseR
 	return result
 }
 
-func (b KnxNetIpBrowser) executeDeviceQuery(field KnxNetIpDeviceQueryField, browseRequest apiModel.PlcBrowseRequest, queryName string, interceptor func(result apiModel.PlcBrowseEvent) bool) ([]apiModel.PlcBrowseQueryResult, error) {
+func (m KnxNetIpBrowser) executeDeviceQuery(field KnxNetIpDeviceQueryField, browseRequest apiModel.PlcBrowseRequest, queryName string, interceptor func(result apiModel.PlcBrowseEvent) bool) ([]apiModel.PlcBrowseQueryResult, error) {
 	// Create a list of address strings, which doesn't contain any ranges, lists or wildcards
-	knxAddresses, err := b.calculateAddresses(field)
+	knxAddresses, err := m.calculateAddresses(field)
 	if err != nil {
 		return nil, err
 	}
@@ -116,7 +116,7 @@ func (b KnxNetIpBrowser) executeDeviceQuery(field KnxNetIpDeviceQueryField, brow
 	// Parse each of these expanded addresses and handle them accordingly.
 	for _, knxAddress := range knxAddresses {
 		// Send a connection request to the device
-		deviceConnections := b.connection.DeviceConnect(knxAddress)
+		deviceConnections := m.connection.DeviceConnect(knxAddress)
 		select {
 		case deviceConnection := <-deviceConnections:
 			// If the request returned a connection, process it,
@@ -147,14 +147,14 @@ func (b KnxNetIpBrowser) executeDeviceQuery(field KnxNetIpDeviceQueryField, brow
 					queryResults = append(queryResults, queryResult)
 				}
 
-				deviceDisconnections := b.connection.DeviceDisconnect(knxAddress)
+				deviceDisconnections := m.connection.DeviceDisconnect(knxAddress)
 				select {
 				case _ = <-deviceDisconnections:
-				case <-time.After(b.connection.defaultTtl * 10):
+				case <-time.After(m.connection.defaultTtl * 10):
 					// Just ignore this case ...
 				}
 			}
-		case <-time.After(b.connection.defaultTtl):
+		case <-time.After(m.connection.defaultTtl):
 			// In this case the remote was just not responding.
 		}
 		// Just to slow things down a bit (This way we can't exceed the max number of requests per minute)
@@ -163,15 +163,15 @@ func (b KnxNetIpBrowser) executeDeviceQuery(field KnxNetIpDeviceQueryField, brow
 	return queryResults, nil
 }
 
-func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunicationObjectQueryField) ([]apiModel.PlcBrowseQueryResult, error) {
+func (m KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunicationObjectQueryField) ([]apiModel.PlcBrowseQueryResult, error) {
 	var results []apiModel.PlcBrowseQueryResult
 
 	knxAddress := field.toKnxAddress()
 	knxAddressString := KnxAddressToString(knxAddress)
 
 	// If we have a building Key, try that to login in order to access protected
-	if b.connection.buildingKey != nil {
-		arr := b.connection.DeviceAuthenticate(*knxAddress, b.connection.buildingKey)
+	if m.connection.buildingKey != nil {
+		arr := m.connection.DeviceAuthenticate(*knxAddress, m.connection.buildingKey)
 		<-arr
 	}
 
@@ -180,7 +180,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	/////////////////////////////////////////////////////////////////////////////////////////////////////
 
 	// First of all, request the starting address of the group address table
-	readRequestBuilder := b.connection.ReadRequestBuilder()
+	readRequestBuilder := m.connection.ReadRequestBuilder()
 	readRequestBuilder.AddQuery("groupAddressTableAddress", knxAddressString+"#1/7")
 	readRequest, err := readRequestBuilder.Build()
 	if err != nil {
@@ -199,10 +199,10 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 
 	// Then read one byte at the given location.
 	// This will return the number of entries in the group address table (each 2 bytes)
-	readRequestBuilder = b.connection.ReadRequestBuilder()
+	readRequestBuilder = m.connection.ReadRequestBuilder()
 	// Depending on the type of device, query an USINT (1 byte) or UINT (2 bytes)
 	// TODO: Do this correctly depending on the device connection device-descriptor
-	if b.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
+	if m.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
 		readRequestBuilder.AddQuery("numberOfAddressTableEntries",
 			fmt.Sprintf("%s#%X:UINT", knxAddressString, groupAddressTableStartAddress))
 	} else {
@@ -224,7 +224,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	}
 	numGroupAddresses := readResult.Response.GetValue("numberOfAddressTableEntries").GetUint16()
 
-	if b.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
+	if m.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
 		groupAddressTableStartAddress += 2
 	} else {
 		groupAddressTableStartAddress += 3
@@ -237,7 +237,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	}
 
 	// Read the data in the group address table
-	readRequestBuilder = b.connection.ReadRequestBuilder()
+	readRequestBuilder = m.connection.ReadRequestBuilder()
 	readRequestBuilder.AddQuery("groupAddressTable",
 		fmt.Sprintf("%s#%X:UINT[%d]", knxAddressString, groupAddressTableStartAddress, numGroupAddresses))
 	readRequest, err = readRequestBuilder.Build()
@@ -270,7 +270,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	/////////////////////////////////////////////////////////////////////////////////////////////////////
 
 	// Now we read the group address association table address
-	readRequestBuilder = b.connection.ReadRequestBuilder()
+	readRequestBuilder = m.connection.ReadRequestBuilder()
 	readRequestBuilder.AddQuery("groupAddressAssociationTableAddress",
 		fmt.Sprintf("%s#2/7", knxAddressString))
 	readRequest, err = readRequestBuilder.Build()
@@ -291,8 +291,8 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 
 	// Then read one uint16 at the given location.
 	// This will return the number of entries in the group address table (each 2 bytes)
-	readRequestBuilder = b.connection.ReadRequestBuilder()
-	if b.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
+	readRequestBuilder = m.connection.ReadRequestBuilder()
+	if m.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
 		readRequestBuilder.AddQuery("numberOfGroupAddressAssociationTableEntries",
 			fmt.Sprintf("%s#%X:UINT", knxAddressString, groupAddressAssociationTableAddress))
 	} else {
@@ -316,12 +316,12 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	numberOfGroupAddressAssociationTableEntries := readResult.Response.GetValue("numberOfGroupAddressAssociationTableEntries").GetUint16()
 
 	// Read the data in the group address table
-	readRequestBuilder = b.connection.ReadRequestBuilder()
+	readRequestBuilder = m.connection.ReadRequestBuilder()
 	// TODO: This request needs to be automatically split up into multiple requests.
 	// Reasons for splitting up:
 	// - Max APDU Size exceeded
 	// - Max 63 bytes readable in one request, due to max of count field
-	if b.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
+	if m.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
 		readRequestBuilder.AddQuery("groupAddressAssociationTable",
 			fmt.Sprintf("%s#%X:UDINT[%d]", knxAddressString, groupAddressAssociationTableAddress+2, numberOfGroupAddressAssociationTableEntries))
 	} else {
@@ -346,14 +346,14 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	groupAddressComObjectNumberMapping := map[*driverModel.KnxGroupAddress]uint16{}
 	if readResult.Response.GetValue("groupAddressAssociationTable").IsList() {
 		for _, groupAddressAssociation := range readResult.Response.GetValue("groupAddressAssociationTable").GetList() {
-			groupAddress, comObjectNumber := b.parseAssociationTable(b.connection.DeviceConnections[*knxAddress].deviceDescriptor,
+			groupAddress, comObjectNumber := m.parseAssociationTable(m.connection.DeviceConnections[*knxAddress].deviceDescriptor,
 				knxGroupAddresses, groupAddressAssociation)
 			if groupAddress != nil {
 				groupAddressComObjectNumberMapping[groupAddress] = comObjectNumber
 			}
 		}
 	} else {
-		groupAddress, comObjectNumber := b.parseAssociationTable(b.connection.DeviceConnections[*knxAddress].deviceDescriptor,
+		groupAddress, comObjectNumber := m.parseAssociationTable(m.connection.DeviceConnections[*knxAddress].deviceDescriptor,
 			knxGroupAddresses, readResult.Response.GetValue("groupAddressAssociationTable"))
 		if groupAddress != nil {
 			groupAddressComObjectNumberMapping[groupAddress] = comObjectNumber
@@ -367,8 +367,8 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 
 	// In case of System B devices, the com object table is read as a property array
 	// In this case we can even read only the com objects we're interested in.
-	if b.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
-		readRequestBuilder = b.connection.ReadRequestBuilder()
+	if m.connection.DeviceConnections[*knxAddress].deviceDescriptor == uint16(0x07B0) /* SystemB */ {
+		readRequestBuilder = m.connection.ReadRequestBuilder()
 		// Read data for all com objects that are assigned a group address
 		for _, comObjectNumber := range groupAddressComObjectNumberMapping {
 			readRequestBuilder.AddQuery(strconv.Itoa(int(comObjectNumber)),
@@ -397,7 +397,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 				writable := descriptor.CommunicationEnable && descriptor.WriteEnable
 				subscribable := descriptor.CommunicationEnable && descriptor.TransmitEnable
 				// Find a matching datatype for the given value-type.
-				fieldType := b.getFieldTypeForValueType(descriptor.ValueType)
+				fieldType := m.getFieldTypeForValueType(descriptor.ValueType)
 				switch groupAddress.Child.(type) {
 				case *driverModel.KnxGroupAddress3Level:
 					address3Level := driverModel.CastKnxGroupAddress3Level(groupAddress)
@@ -425,13 +425,13 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 				})
 			}
 		}
-	} else if (b.connection.DeviceConnections[*knxAddress].deviceDescriptor & 0xFFF0) == uint16(0x0700) /* System7 */ {
+	} else if (m.connection.DeviceConnections[*knxAddress].deviceDescriptor & 0xFFF0) == uint16(0x0700) /* System7 */ {
 		// For System 7 Devices we unfortunately can't access the information of where the memory address for the
 		// Com Object Table is programmatically, so we have to lookup the address which is extracted from the XML data
 		// Provided by the manufacturer. Unfortunately in order to be able to do this, we need to get the application
 		// version from the device first.
 
-		readRequestBuilder := b.connection.ReadRequestBuilder()
+		readRequestBuilder := m.connection.ReadRequestBuilder()
 		readRequestBuilder.AddQuery("applicationProgramVersion", knxAddressString+"#3/13")
 		readRequestBuilder.AddQuery("interfaceProgramVersion", knxAddressString+"#4/13")
 		readRequest, err := readRequestBuilder.Build()
@@ -456,7 +456,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 			return nil, errors.New("error getting com address table address. No table entry for application id: " + applicationId)
 		}
 
-		readRequestBuilder = b.connection.ReadRequestBuilder()
+		readRequestBuilder = m.connection.ReadRequestBuilder()
 		// Read data for all com objects that are assigned a group address
 		groupAddressMap := map[uint16][]*driverModel.KnxGroupAddress{}
 		for groupAddress, comObjectNumber := range groupAddressComObjectNumberMapping {
@@ -490,11 +490,11 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 			writable := descriptor.CommunicationEnable && descriptor.WriteEnable
 			subscribable := descriptor.CommunicationEnable && descriptor.TransmitEnable
 			// Find a matching datatype for the given value-type.
-			fieldType := b.getFieldTypeForValueType(descriptor.ValueType)
+			fieldType := m.getFieldTypeForValueType(descriptor.ValueType)
 
 			// Create a field for each of the given inputs.
 			for _, groupAddress := range groupAddresses {
-				field := b.getFieldForGroupAddress(groupAddress, fieldType)
+				field := m.getFieldForGroupAddress(groupAddress, fieldType)
 
 				results = append(results, apiModel.PlcBrowseQueryResult{
 					Field:             field,
@@ -507,7 +507,7 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 			}
 		}
 	} else {
-		readRequestBuilder = b.connection.ReadRequestBuilder()
+		readRequestBuilder = m.connection.ReadRequestBuilder()
 		readRequestBuilder.AddQuery("comObjectTableAddress", fmt.Sprintf("%s#3/7", knxAddressString))
 		readRequest, err = readRequestBuilder.Build()
 		if err != nil {
@@ -524,17 +524,17 @@ func (b KnxNetIpBrowser) executeCommunicationObjectQuery(field KnxNetIpCommunica
 	return results, nil
 }
 
-func (b KnxNetIpBrowser) calculateAddresses(field KnxNetIpDeviceQueryField) ([]driverModel.KnxAddress, error) {
+func (m KnxNetIpBrowser) calculateAddresses(field KnxNetIpDeviceQueryField) ([]driverModel.KnxAddress, error) {
 	var explodedAddresses []driverModel.KnxAddress
-	mainGroupOptions, err := b.explodeSegment(field.MainGroup, 1, 15)
+	mainGroupOptions, err := m.explodeSegment(field.MainGroup, 1, 15)
 	if err != nil {
 		return nil, err
 	}
-	middleGroupOptions, err := b.explodeSegment(field.MiddleGroup, 1, 15)
+	middleGroupOptions, err := m.explodeSegment(field.MiddleGroup, 1, 15)
 	if err != nil {
 		return nil, err
 	}
-	subGroupOptions, err := b.explodeSegment(field.SubGroup, 0, 255)
+	subGroupOptions, err := m.explodeSegment(field.SubGroup, 0, 255)
 	if err != nil {
 		return nil, err
 	}
@@ -542,7 +542,7 @@ func (b KnxNetIpBrowser) calculateAddresses(field KnxNetIpDeviceQueryField) ([]d
 		for _, middleOption := range middleGroupOptions {
 			for _, subOption := range subGroupOptions {
 				// Don't try connecting to ourselves.
-				if b.connection.ClientKnxAddress != nil {
+				if m.connection.ClientKnxAddress != nil {
 					currentAddress := driverModel.KnxAddress{
 						MainGroup:   mainOption,
 						MiddleGroup: middleOption,
@@ -556,7 +556,7 @@ func (b KnxNetIpBrowser) calculateAddresses(field KnxNetIpDeviceQueryField) ([]d
 	return explodedAddresses, nil
 }
 
-func (b KnxNetIpBrowser) explodeSegment(segment string, min uint8, max uint8) ([]uint8, error) {
+func (m KnxNetIpBrowser) explodeSegment(segment string, min uint8, max uint8) ([]uint8, error) {
 	var options []uint8
 	if strings.Contains(segment, "*") {
 		for i := min; i <= max; i++ {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
index ae349a2..fcedfb7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
@@ -19,242 +19,243 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type Apdu struct {
-    Numbered bool
-    Counter uint8
-    Child IApduChild
-    IApdu
-    IApduParent
+	Numbered bool
+	Counter  uint8
+	Child    IApduChild
+	IApdu
+	IApduParent
 }
 
 // The corresponding interface
 type IApdu interface {
-    Control() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	Control() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IApduParent interface {
-    SerializeParent(io utils.WriteBuffer, child IApdu, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IApdu, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IApduChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *Apdu, numbered bool, counter uint8)
-    GetTypeName() string
-    IApdu
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *Apdu, numbered bool, counter uint8)
+	GetTypeName() string
+	IApdu
 }
 
 func NewApdu(numbered bool, counter uint8) *Apdu {
-    return &Apdu{Numbered: numbered, Counter: counter}
+	return &Apdu{Numbered: numbered, Counter: counter}
 }
 
 func CastApdu(structType interface{}) *Apdu {
-    castFunc := func(typ interface{}) *Apdu {
-        if casted, ok := typ.(Apdu); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*Apdu); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *Apdu {
+		if casted, ok := typ.(Apdu); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*Apdu); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *Apdu) GetTypeName() string {
-    return "Apdu"
+	return "Apdu"
 }
 
 func (m *Apdu) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (control)
-    lengthInBits += 1
+	// Discriminator Field (control)
+	lengthInBits += 1
 
-    // Simple field (numbered)
-    lengthInBits += 1
+	// Simple field (numbered)
+	lengthInBits += 1
 
-    // Simple field (counter)
-    lengthInBits += 4
+	// Simple field (counter)
+	lengthInBits += 4
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *Apdu) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func ApduParse(io *utils.ReadBuffer, dataLength uint8) (*Apdu, error) {
 
-    // Discriminator Field (control) (Used as input to a switch field)
-    control, _controlErr := io.ReadUint8(1)
-    if _controlErr != nil {
-        return nil, errors.New("Error parsing 'control' field " + _controlErr.Error())
-    }
+	// Discriminator Field (control) (Used as input to a switch field)
+	control, _controlErr := io.ReadUint8(1)
+	if _controlErr != nil {
+		return nil, errors.New("Error parsing 'control' field " + _controlErr.Error())
+	}
 
-    // Simple Field (numbered)
-    numbered, _numberedErr := io.ReadBit()
-    if _numberedErr != nil {
-        return nil, errors.New("Error parsing 'numbered' field " + _numberedErr.Error())
-    }
+	// Simple Field (numbered)
+	numbered, _numberedErr := io.ReadBit()
+	if _numberedErr != nil {
+		return nil, errors.New("Error parsing 'numbered' field " + _numberedErr.Error())
+	}
 
-    // Simple Field (counter)
-    counter, _counterErr := io.ReadUint8(4)
-    if _counterErr != nil {
-        return nil, errors.New("Error parsing 'counter' field " + _counterErr.Error())
-    }
+	// Simple Field (counter)
+	counter, _counterErr := io.ReadUint8(4)
+	if _counterErr != nil {
+		return nil, errors.New("Error parsing 'counter' field " + _counterErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *Apdu
-    var typeSwitchError error
-    switch {
-    case control == 1:
-        _parent, typeSwitchError = ApduControlContainerParse(io)
-    case control == 0:
-        _parent, typeSwitchError = ApduDataContainerParse(io, dataLength)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *Apdu
+	var typeSwitchError error
+	switch {
+	case control == 1:
+		_parent, typeSwitchError = ApduControlContainerParse(io)
+	case control == 0:
+		_parent, typeSwitchError = ApduDataContainerParse(io, dataLength)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent, numbered, counter)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent, numbered, counter)
+	return _parent, nil
 }
 
 func (m *Apdu) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *Apdu) SerializeParent(io utils.WriteBuffer, child IApdu, serializeChildFunction func() error) error {
 
-    // Discriminator Field (control) (Used as input to a switch field)
-    control := uint8(child.Control())
-    _controlErr := io.WriteUint8(1, (control))
-    if _controlErr != nil {
-        return errors.New("Error serializing 'control' field " + _controlErr.Error())
-    }
+	// Discriminator Field (control) (Used as input to a switch field)
+	control := uint8(child.Control())
+	_controlErr := io.WriteUint8(1, (control))
+	if _controlErr != nil {
+		return errors.New("Error serializing 'control' field " + _controlErr.Error())
+	}
 
-    // Simple Field (numbered)
-    numbered := bool(m.Numbered)
-    _numberedErr := io.WriteBit((numbered))
-    if _numberedErr != nil {
-        return errors.New("Error serializing 'numbered' field " + _numberedErr.Error())
-    }
+	// Simple Field (numbered)
+	numbered := bool(m.Numbered)
+	_numberedErr := io.WriteBit((numbered))
+	if _numberedErr != nil {
+		return errors.New("Error serializing 'numbered' field " + _numberedErr.Error())
+	}
 
-    // Simple Field (counter)
-    counter := uint8(m.Counter)
-    _counterErr := io.WriteUint8(4, (counter))
-    if _counterErr != nil {
-        return errors.New("Error serializing 'counter' field " + _counterErr.Error())
-    }
+	// Simple Field (counter)
+	counter := uint8(m.Counter)
+	_counterErr := io.WriteUint8(4, (counter))
+	if _counterErr != nil {
+		return errors.New("Error serializing 'counter' field " + _counterErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *Apdu) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "numbered":
-                var data bool
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.Numbered = data
-            case "counter":
-                var data uint8
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.Counter = data
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlContainer":
-                        var dt *ApduControlContainer
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduControlContainer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataContainer":
-                        var dt *ApduDataContainer
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataContainer)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "numbered":
+				var data bool
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.Numbered = data
+			case "counter":
+				var data uint8
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.Counter = data
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlContainer":
+					var dt *ApduControlContainer
+					if m.Child != nil {
+						dt = m.Child.(*ApduControlContainer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataContainer":
+					var dt *ApduDataContainer
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataContainer)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *Apdu) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.knxnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.Numbered, xml.StartElement{Name: xml.Name{Local: "numbered"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.Counter, xml.StartElement{Name: xml.Name{Local: "counter"}}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.knxnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.Numbered, xml.StartElement{Name: xml.Name{Local: "numbered"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.Counter, xml.StartElement{Name: xml.Name{Local: "counter"}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
index ae4ddc1..f072d87 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
@@ -19,218 +19,219 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type ApduControl struct {
-    Child IApduControlChild
-    IApduControl
-    IApduControlParent
+	Child IApduControlChild
+	IApduControl
+	IApduControlParent
 }
 
 // The corresponding interface
 type IApduControl interface {
-    ControlType() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ControlType() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IApduControlParent interface {
-    SerializeParent(io utils.WriteBuffer, child IApduControl, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IApduControl, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IApduControlChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *ApduControl)
-    GetTypeName() string
-    IApduControl
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *ApduControl)
+	GetTypeName() string
+	IApduControl
 }
 
 func NewApduControl() *ApduControl {
-    return &ApduControl{}
+	return &ApduControl{}
 }
 
 func CastApduControl(structType interface{}) *ApduControl {
-    castFunc := func(typ interface{}) *ApduControl {
-        if casted, ok := typ.(ApduControl); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*ApduControl); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *ApduControl {
+		if casted, ok := typ.(ApduControl); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*ApduControl); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *ApduControl) GetTypeName() string {
-    return "ApduControl"
+	return "ApduControl"
 }
 
 func (m *ApduControl) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (controlType)
-    lengthInBits += 2
+	// Discriminator Field (controlType)
+	lengthInBits += 2
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *ApduControl) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func ApduControlParse(io *utils.ReadBuffer) (*ApduControl, error) {
 
-    // Discriminator Field (controlType) (Used as input to a switch field)
-    controlType, _controlTypeErr := io.ReadUint8(2)
-    if _controlTypeErr != nil {
-        return nil, errors.New("Error parsing 'controlType' field " + _controlTypeErr.Error())
-    }
-
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *ApduControl
-    var typeSwitchError error
-    switch {
-    case controlType == 0x0:
-        _parent, typeSwitchError = ApduControlConnectParse(io)
-    case controlType == 0x1:
-        _parent, typeSwitchError = ApduControlDisconnectParse(io)
-    case controlType == 0x2:
-        _parent, typeSwitchError = ApduControlAckParse(io)
-    case controlType == 0x3:
-        _parent, typeSwitchError = ApduControlNackParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
-
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Discriminator Field (controlType) (Used as input to a switch field)
+	controlType, _controlTypeErr := io.ReadUint8(2)
+	if _controlTypeErr != nil {
+		return nil, errors.New("Error parsing 'controlType' field " + _controlTypeErr.Error())
+	}
+
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *ApduControl
+	var typeSwitchError error
+	switch {
+	case controlType == 0x0:
+		_parent, typeSwitchError = ApduControlConnectParse(io)
+	case controlType == 0x1:
+		_parent, typeSwitchError = ApduControlDisconnectParse(io)
+	case controlType == 0x2:
+		_parent, typeSwitchError = ApduControlAckParse(io)
+	case controlType == 0x3:
+		_parent, typeSwitchError = ApduControlNackParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
+
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *ApduControl) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *ApduControl) SerializeParent(io utils.WriteBuffer, child IApduControl, serializeChildFunction func() error) error {
 
-    // Discriminator Field (controlType) (Used as input to a switch field)
-    controlType := uint8(child.ControlType())
-    _controlTypeErr := io.WriteUint8(2, (controlType))
-    if _controlTypeErr != nil {
-        return errors.New("Error serializing 'controlType' field " + _controlTypeErr.Error())
-    }
+	// Discriminator Field (controlType) (Used as input to a switch field)
+	controlType := uint8(child.ControlType())
+	_controlTypeErr := io.WriteUint8(2, (controlType))
+	if _controlTypeErr != nil {
+		return errors.New("Error serializing 'controlType' field " + _controlTypeErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *ApduControl) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlConnect":
-                        var dt *ApduControlConnect
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduControlConnect)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlDisconnect":
-                        var dt *ApduControlDisconnect
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduControlDisconnect)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlAck":
-                        var dt *ApduControlAck
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduControlAck)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlNack":
-                        var dt *ApduControlNack
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduControlNack)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlConnect":
+					var dt *ApduControlConnect
+					if m.Child != nil {
+						dt = m.Child.(*ApduControlConnect)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlDisconnect":
+					var dt *ApduControlDisconnect
+					if m.Child != nil {
+						dt = m.Child.(*ApduControlDisconnect)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlAck":
+					var dt *ApduControlAck
+					if m.Child != nil {
+						dt = m.Child.(*ApduControlAck)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduControlNack":
+					var dt *ApduControlNack
+					if m.Child != nil {
+						dt = m.Child.(*ApduControlNack)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *ApduControl) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.knxnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.knxnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
index d204254..c3e5957 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
@@ -19,386 +19,387 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type ApduData struct {
-    Child IApduDataChild
-    IApduData
-    IApduDataParent
+	Child IApduDataChild
+	IApduData
+	IApduDataParent
 }
 
 // The corresponding interface
 type IApduData interface {
-    ApciType() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ApciType() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IApduDataParent interface {
-    SerializeParent(io utils.WriteBuffer, child IApduData, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IApduData, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IApduDataChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *ApduData)
-    GetTypeName() string
-    IApduData
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *ApduData)
+	GetTypeName() string
+	IApduData
 }
 
 func NewApduData() *ApduData {
-    return &ApduData{}
+	return &ApduData{}
 }
 
 func CastApduData(structType interface{}) *ApduData {
-    castFunc := func(typ interface{}) *ApduData {
-        if casted, ok := typ.(ApduData); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*ApduData); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *ApduData {
+		if casted, ok := typ.(ApduData); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*ApduData); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *ApduData) GetTypeName() string {
-    return "ApduData"
+	return "ApduData"
 }
 
 func (m *ApduData) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (apciType)
-    lengthInBits += 4
+	// Discriminator Field (apciType)
+	lengthInBits += 4
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *ApduData) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func ApduDataParse(io *utils.ReadBuffer, dataLength uint8) (*ApduData, error) {
 
-    // Discriminator Field (apciType) (Used as input to a switch field)
-    apciType, _apciTypeErr := io.ReadUint8(4)
-    if _apciTypeErr != nil {
-        return nil, errors.New("Error parsing 'apciType' field " + _apciTypeErr.Error())
-    }
+	// Discriminator Field (apciType) (Used as input to a switch field)
+	apciType, _apciTypeErr := io.ReadUint8(4)
+	if _apciTypeErr != nil {
+		return nil, errors.New("Error parsing 'apciType' field " + _apciTypeErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *ApduData
-    var typeSwitchError error
-    switch {
-    case apciType == 0x0:
-        _parent, typeSwitchError = ApduDataGroupValueReadParse(io)
-    case apciType == 0x1:
-        _parent, typeSwitchError = ApduDataGroupValueResponseParse(io, dataLength)
-    case apciType == 0x2:
-        _parent, typeSwitchError = ApduDataGroupValueWriteParse(io, dataLength)
-    case apciType == 0x3:
-        _parent, typeSwitchError = ApduDataIndividualAddressWriteParse(io)
-    case apciType == 0x4:
-        _parent, typeSwitchError = ApduDataIndividualAddressReadParse(io)
-    case apciType == 0x5:
-        _parent, typeSwitchError = ApduDataIndividualAddressResponseParse(io)
-    case apciType == 0x6:
-        _parent, typeSwitchError = ApduDataAdcReadParse(io)
-    case apciType == 0x7:
-        _parent, typeSwitchError = ApduDataAdcResponseParse(io)
-    case apciType == 0x8:
-        _parent, typeSwitchError = ApduDataMemoryReadParse(io)
-    case apciType == 0x9:
-        _parent, typeSwitchError = ApduDataMemoryResponseParse(io)
-    case apciType == 0xA:
-        _parent, typeSwitchError = ApduDataMemoryWriteParse(io)
-    case apciType == 0xB:
-        _parent, typeSwitchError = ApduDataUserMessageParse(io)
-    case apciType == 0xC:
-        _parent, typeSwitchError = ApduDataDeviceDescriptorReadParse(io)
-    case apciType == 0xD:
-        _parent, typeSwitchError = ApduDataDeviceDescriptorResponseParse(io, dataLength)
-    case apciType == 0xE:
-        _parent, typeSwitchError = ApduDataRestartParse(io)
-    case apciType == 0xF:
-        _parent, typeSwitchError = ApduDataOtherParse(io, dataLength)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *ApduData
+	var typeSwitchError error
+	switch {
+	case apciType == 0x0:
+		_parent, typeSwitchError = ApduDataGroupValueReadParse(io)
+	case apciType == 0x1:
+		_parent, typeSwitchError = ApduDataGroupValueResponseParse(io, dataLength)
+	case apciType == 0x2:
+		_parent, typeSwitchError = ApduDataGroupValueWriteParse(io, dataLength)
+	case apciType == 0x3:
+		_parent, typeSwitchError = ApduDataIndividualAddressWriteParse(io)
+	case apciType == 0x4:
+		_parent, typeSwitchError = ApduDataIndividualAddressReadParse(io)
+	case apciType == 0x5:
+		_parent, typeSwitchError = ApduDataIndividualAddressResponseParse(io)
+	case apciType == 0x6:
+		_parent, typeSwitchError = ApduDataAdcReadParse(io)
+	case apciType == 0x7:
+		_parent, typeSwitchError = ApduDataAdcResponseParse(io)
+	case apciType == 0x8:
+		_parent, typeSwitchError = ApduDataMemoryReadParse(io)
+	case apciType == 0x9:
+		_parent, typeSwitchError = ApduDataMemoryResponseParse(io)
+	case apciType == 0xA:
+		_parent, typeSwitchError = ApduDataMemoryWriteParse(io)
+	case apciType == 0xB:
+		_parent, typeSwitchError = ApduDataUserMessageParse(io)
+	case apciType == 0xC:
+		_parent, typeSwitchError = ApduDataDeviceDescriptorReadParse(io)
+	case apciType == 0xD:
+		_parent, typeSwitchError = ApduDataDeviceDescriptorResponseParse(io, dataLength)
+	case apciType == 0xE:
+		_parent, typeSwitchError = ApduDataRestartParse(io)
+	case apciType == 0xF:
+		_parent, typeSwitchError = ApduDataOtherParse(io, dataLength)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *ApduData) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *ApduData) SerializeParent(io utils.WriteBuffer, child IApduData, serializeChildFunction func() error) error {
 
-    // Discriminator Field (apciType) (Used as input to a switch field)
-    apciType := uint8(child.ApciType())
-    _apciTypeErr := io.WriteUint8(4, (apciType))
-    if _apciTypeErr != nil {
-        return errors.New("Error serializing 'apciType' field " + _apciTypeErr.Error())
-    }
+	// Discriminator Field (apciType) (Used as input to a switch field)
+	apciType := uint8(child.ApciType())
+	_apciTypeErr := io.WriteUint8(4, (apciType))
+	if _apciTypeErr != nil {
+		return errors.New("Error serializing 'apciType' field " + _apciTypeErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *ApduData) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataGroupValueRead":
-                        var dt *ApduDataGroupValueRead
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataGroupValueRead)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataGroupValueResponse":
-                        var dt *ApduDataGroupValueResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataGroupValueResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataGroupValueWrite":
-                        var dt *ApduDataGroupValueWrite
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataGroupValueWrite)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataIndividualAddressWrite":
-                        var dt *ApduDataIndividualAddressWrite
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataIndividualAddressWrite)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataIndividualAddressRead":
-                        var dt *ApduDataIndividualAddressRead
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataIndividualAddressRead)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataIndividualAddressResponse":
-                        var dt *ApduDataIndividualAddressResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataIndividualAddressResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataAdcRead":
-                        var dt *ApduDataAdcRead
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataAdcRead)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataAdcResponse":
-                        var dt *ApduDataAdcResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataAdcResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataMemoryRead":
-                        var dt *ApduDataMemoryRead
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataMemoryRead)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataMemoryResponse":
-                        var dt *ApduDataMemoryResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataMemoryResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataMemoryWrite":
-                        var dt *ApduDataMemoryWrite
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataMemoryWrite)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataUserMessage":
-                        var dt *ApduDataUserMessage
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataUserMessage)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataDeviceDescriptorRead":
-                        var dt *ApduDataDeviceDescriptorRead
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataDeviceDescriptorRead)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataDeviceDescriptorResponse":
-                        var dt *ApduDataDeviceDescriptorResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataDeviceDescriptorResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataRestart":
-                        var dt *ApduDataRestart
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataRestart)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataOther":
-                        var dt *ApduDataOther
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataOther)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataGroupValueRead":
+					var dt *ApduDataGroupValueRead
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataGroupValueRead)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataGroupValueResponse":
+					var dt *ApduDataGroupValueResponse
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataGroupValueResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataGroupValueWrite":
+					var dt *ApduDataGroupValueWrite
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataGroupValueWrite)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataIndividualAddressWrite":
+					var dt *ApduDataIndividualAddressWrite
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataIndividualAddressWrite)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataIndividualAddressRead":
+					var dt *ApduDataIndividualAddressRead
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataIndividualAddressRead)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataIndividualAddressResponse":
+					var dt *ApduDataIndividualAddressResponse
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataIndividualAddressResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataAdcRead":
+					var dt *ApduDataAdcRead
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataAdcRead)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataAdcResponse":
+					var dt *ApduDataAdcResponse
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataAdcResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataMemoryRead":
+					var dt *ApduDataMemoryRead
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataMemoryRead)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataMemoryResponse":
+					var dt *ApduDataMemoryResponse
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataMemoryResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataMemoryWrite":
+					var dt *ApduDataMemoryWrite
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataMemoryWrite)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataUserMessage":
+					var dt *ApduDataUserMessage
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataUserMessage)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataDeviceDescriptorRead":
+					var dt *ApduDataDeviceDescriptorRead
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataDeviceDescriptorRead)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataDeviceDescriptorResponse":
+					var dt *ApduDataDeviceDescriptorResponse
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataDeviceDescriptorResponse)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataRestart":
+					var dt *ApduDataRestart
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataRestart)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataOther":
+					var dt *ApduDataOther
+					if m.Child != nil {
+						dt = m.Child.(*ApduDataOther)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *ApduData) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.knxnetip.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    marshaller.MarshalXML(e, start)
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.knxnetip.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
index 5c11e3f..81f5c30 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
@@ -19,736 +19,737 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type ApduDataExt struct {
-    Child IApduDataExtChild
-    IApduDataExt
-    IApduDataExtParent
+	Child IApduDataExtChild
+	IApduDataExt
+	IApduDataExtParent
 }
 
 // The corresponding interface
 type IApduDataExt interface {
-    ExtApciType() uint8
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	ExtApciType() uint8
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IApduDataExtParent interface {
-    SerializeParent(io utils.WriteBuffer, child IApduDataExt, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IApduDataExt, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IApduDataExtChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *ApduDataExt)
-    GetTypeName() string
-    IApduDataExt
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *ApduDataExt)
+	GetTypeName() string
+	IApduDataExt
 }
 
 func NewApduDataExt() *ApduDataExt {
-    return &ApduDataExt{}
+	return &ApduDataExt{}
 }
 
 func CastApduDataExt(structType interface{}) *ApduDataExt {
-    castFunc := func(typ interface{}) *ApduDataExt {
-        if casted, ok := typ.(ApduDataExt); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*ApduDataExt); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *ApduDataExt {
+		if casted, ok := typ.(ApduDataExt); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*ApduDataExt); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *ApduDataExt) GetTypeName() string {
-    return "ApduDataExt"
+	return "ApduDataExt"
 }
 
 func (m *ApduDataExt) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Discriminator Field (extApciType)
-    lengthInBits += 6
+	// Discriminator Field (extApciType)
+	lengthInBits += 6
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *ApduDataExt) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func ApduDataExtParse(io *utils.ReadBuffer, length uint8) (*ApduDataExt, error) {
 
-    // Discriminator Field (extApciType) (Used as input to a switch field)
-    extApciType, _extApciTypeErr := io.ReadUint8(6)
-    if _extApciTypeErr != nil {
-        return nil, errors.New("Error parsing 'extApciType' field " + _extApciTypeErr.Error())
-    }
+	// Discriminator Field (extApciType) (Used as input to a switch field)
+	extApciType, _extApciTypeErr := io.ReadUint8(6)
+	if _extApciTypeErr != nil {
+		return nil, errors.New("Error parsing 'extApciType' field " + _extApciTypeErr.Error())
+	}
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *ApduDataExt
-    var typeSwitchError error
-    switch {
-    case extApciType == 0x00:
-        _parent, typeSwitchError = ApduDataExtOpenRoutingTableRequestParse(io)
-    case extApciType == 0x01:
-        _parent, typeSwitchError = ApduDataExtReadRoutingTableRequestParse(io)
-    case extApciType == 0x02:
-        _parent, typeSwitchError = ApduDataExtReadRoutingTableResponseParse(io)
-    case extApciType == 0x03:
-        _parent, typeSwitchError = ApduDataExtWriteRoutingTableRequestParse(io)
-    case extApciType == 0x08:
-        _parent, typeSwitchError = ApduDataExtReadRouterMemoryRequestParse(io)
-    case extApciType == 0x09:
-        _parent, typeSwitchError = ApduDataExtReadRouterMemoryResponseParse(io)
-    case extApciType == 0x0A:
-        _parent, typeSwitchError = ApduDataExtWriteRouterMemoryRequestParse(io)
-    case extApciType == 0x0D:
-        _parent, typeSwitchError = ApduDataExtReadRouterStatusRequestParse(io)
-    case extApciType == 0x0E:
-        _parent, typeSwitchError = ApduDataExtReadRouterStatusResponseParse(io)
-    case extApciType == 0x0F:
-        _parent, typeSwitchError = ApduDataExtWriteRouterStatusRequestParse(io)
-    case extApciType == 0x10:
-        _parent, typeSwitchError = ApduDataExtMemoryBitWriteParse(io)
-    case extApciType == 0x11:
-        _parent, typeSwitchError = ApduDataExtAuthorizeRequestParse(io)
-    case extApciType == 0x12:
-        _parent, typeSwitchError = ApduDataExtAuthorizeResponseParse(io)
-    case extApciType == 0x13:
-        _parent, typeSwitchError = ApduDataExtKeyWriteParse(io)
-    case extApciType == 0x14:
-        _parent, typeSwitchError = ApduDataExtKeyResponseParse(io)
-    case extApciType == 0x15:
-        _parent, typeSwitchError = ApduDataExtPropertyValueReadParse(io)
-    case extApciType == 0x16:
-        _parent, typeSwitchError = ApduDataExtPropertyValueResponseParse(io, length)
-    case extApciType == 0x17:
-        _parent, typeSwitchError = ApduDataExtPropertyValueWriteParse(io, length)
-    case extApciType == 0x18:
-        _parent, typeSwitchError = ApduDataExtPropertyDescriptionReadParse(io)
-    case extApciType == 0x19:
-        _parent, typeSwitchError = ApduDataExtPropertyDescriptionResponseParse(io)
-    case extApciType == 0x1A:
-        _parent, typeSwitchError = ApduDataExtNetworkParameterReadParse(io)
-    case extApciType == 0x1B:
-        _parent, typeSwitchError = ApduDataExtNetworkParameterResponseParse(io)
-    case extApciType == 0x1C:
-        _parent, typeSwitchError = ApduDataExtIndividualAddressSerialNumberReadParse(io)
-    case extApciType == 0x1D:
-        _parent, typeSwitchError = ApduDataExtIndividualAddressSerialNumberResponseParse(io)
-    case extApciType == 0x1E:
-        _parent, typeSwitchError = ApduDataExtIndividualAddressSerialNumberWriteParse(io)
-    case extApciType == 0x20:
-        _parent, typeSwitchError = ApduDataExtDomainAddressWriteParse(io)
-    case extApciType == 0x21:
-        _parent, typeSwitchError = ApduDataExtDomainAddressReadParse(io)
-    case extApciType == 0x22:
-        _parent, typeSwitchError = ApduDataExtDomainAddressResponseParse(io)
-    case extApciType == 0x23:
-        _parent, typeSwitchError = ApduDataExtDomainAddressSelectiveReadParse(io)
-    case extApciType == 0x24:
-        _parent, typeSwitchError = ApduDataExtNetworkParameterWriteParse(io)
-    case extApciType == 0x25:
-        _parent, typeSwitchError = ApduDataExtLinkReadParse(io)
-    case extApciType == 0x26:
-        _parent, typeSwitchError = ApduDataExtLinkResponseParse(io)
-    case extApciType == 0x27:
-        _parent, typeSwitchError = ApduDataExtLinkWriteParse(io)
-    case extApciType == 0x28:
-        _parent, typeSwitchError = ApduDataExtGroupPropertyValueReadParse(io)
-    case extApciType == 0x29:
-        _parent, typeSwitchError = ApduDataExtGroupPropertyValueResponseParse(io)
-    case extApciType == 0x2A:
-        _parent, typeSwitchError = ApduDataExtGroupPropertyValueWriteParse(io)
-    case extApciType == 0x2B:
-        _parent, typeSwitchError = ApduDataExtGroupPropertyValueInfoReportParse(io)
-    case extApciType == 0x2C:
-        _parent, typeSwitchError = ApduDataExtDomainAddressSerialNumberReadParse(io)
-    case extApciType == 0x2D:
-        _parent, typeSwitchError = ApduDataExtDomainAddressSerialNumberResponseParse(io)
-    case extApciType == 0x2E:
-        _parent, typeSwitchError = ApduDataExtDomainAddressSerialNumberWriteParse(io)
-    case extApciType == 0x30:
-        _parent, typeSwitchError = ApduDataExtFileStreamInfoReportParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *ApduDataExt
+	var typeSwitchError error
+	switch {
+	case extApciType == 0x00:
+		_parent, typeSwitchError = ApduDataExtOpenRoutingTableRequestParse(io)
+	case extApciType == 0x01:
+		_parent, typeSwitchError = ApduDataExtReadRoutingTableRequestParse(io)
+	case extApciType == 0x02:
+		_parent, typeSwitchError = ApduDataExtReadRoutingTableResponseParse(io)
+	case extApciType == 0x03:
+		_parent, typeSwitchError = ApduDataExtWriteRoutingTableRequestParse(io)
+	case extApciType == 0x08:
+		_parent, typeSwitchError = ApduDataExtReadRouterMemoryRequestParse(io)
+	case extApciType == 0x09:
+		_parent, typeSwitchError = ApduDataExtReadRouterMemoryResponseParse(io)
+	case extApciType == 0x0A:
+		_parent, typeSwitchError = ApduDataExtWriteRouterMemoryRequestParse(io)
+	case extApciType == 0x0D:
+		_parent, typeSwitchError = ApduDataExtReadRouterStatusRequestParse(io)
+	case extApciType == 0x0E:
+		_parent, typeSwitchError = ApduDataExtReadRouterStatusResponseParse(io)
+	case extApciType == 0x0F:
+		_parent, typeSwitchError = ApduDataExtWriteRouterStatusRequestParse(io)
+	case extApciType == 0x10:
+		_parent, typeSwitchError = ApduDataExtMemoryBitWriteParse(io)
+	case extApciType == 0x11:
+		_parent, typeSwitchError = ApduDataExtAuthorizeRequestParse(io)
+	case extApciType == 0x12:
+		_parent, typeSwitchError = ApduDataExtAuthorizeResponseParse(io)
+	case extApciType == 0x13:
+		_parent, typeSwitchError = ApduDataExtKeyWriteParse(io)
+	case extApciType == 0x14:
+		_parent, typeSwitchError = ApduDataExtKeyResponseParse(io)
+	case extApciType == 0x15:
+		_parent, typeSwitchError = ApduDataExtPropertyValueReadParse(io)
+	case extApciType == 0x16:
+		_parent, typeSwitchError = ApduDataExtPropertyValueResponseParse(io, length)
+	case extApciType == 0x17:
+		_parent, typeSwitchError = ApduDataExtPropertyValueWriteParse(io, length)
+	case extApciType == 0x18:
+		_parent, typeSwitchError = ApduDataExtPropertyDescriptionReadParse(io)
+	case extApciType == 0x19:
+		_parent, typeSwitchError = ApduDataExtPropertyDescriptionResponseParse(io)
+	case extApciType == 0x1A:
+		_parent, typeSwitchError = ApduDataExtNetworkParameterReadParse(io)
+	case extApciType == 0x1B:
+		_parent, typeSwitchError = ApduDataExtNetworkParameterResponseParse(io)
+	case extApciType == 0x1C:
+		_parent, typeSwitchError = ApduDataExtIndividualAddressSerialNumberReadParse(io)
+	case extApciType == 0x1D:
+		_parent, typeSwitchError = ApduDataExtIndividualAddressSerialNumberResponseParse(io)
+	case extApciType == 0x1E:
+		_parent, typeSwitchError = ApduDataExtIndividualAddressSerialNumberWriteParse(io)
+	case extApciType == 0x20:
+		_parent, typeSwitchError = ApduDataExtDomainAddressWriteParse(io)
+	case extApciType == 0x21:
+		_parent, typeSwitchError = ApduDataExtDomainAddressReadParse(io)
+	case extApciType == 0x22:
+		_parent, typeSwitchError = ApduDataExtDomainAddressResponseParse(io)
+	case extApciType == 0x23:
+		_parent, typeSwitchError = ApduDataExtDomainAddressSelectiveReadParse(io)
+	case extApciType == 0x24:
+		_parent, typeSwitchError = ApduDataExtNetworkParameterWriteParse(io)
+	case extApciType == 0x25:
+		_parent, typeSwitchError = ApduDataExtLinkReadParse(io)
+	case extApciType == 0x26:
+		_parent, typeSwitchError = ApduDataExtLinkResponseParse(io)
+	case extApciType == 0x27:
+		_parent, typeSwitchError = ApduDataExtLinkWriteParse(io)
+	case extApciType == 0x28:
+		_parent, typeSwitchError = ApduDataExtGroupPropertyValueReadParse(io)
+	case extApciType == 0x29:
+		_parent, typeSwitchError = ApduDataExtGroupPropertyValueResponseParse(io)
+	case extApciType == 0x2A:
+		_parent, typeSwitchError = ApduDataExtGroupPropertyValueWriteParse(io)
+	case extApciType == 0x2B:
+		_parent, typeSwitchError = ApduDataExtGroupPropertyValueInfoReportParse(io)
+	case extApciType == 0x2C:
+		_parent, typeSwitchError = ApduDataExtDomainAddressSerialNumberReadParse(io)
+	case extApciType == 0x2D:
+		_parent, typeSwitchError = ApduDataExtDomainAddressSerialNumberResponseParse(io)
+	case extApciType == 0x2E:
+		_parent, typeSwitchError = ApduDataExtDomainAddressSerialNumberWriteParse(io)
+	case extApciType == 0x30:
+		_parent, typeSwitchError = ApduDataExtFileStreamInfoReportParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
 
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *ApduDataExt) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *ApduDataExt) SerializeParent(io utils.WriteBuffer, child IApduDataExt, serializeChildFunction func() error) error {
 
-    // Discriminator Field (extApciType) (Used as input to a switch field)
-    extApciType := uint8(child.ExtApciType())
-    _extApciTypeErr := io.WriteUint8(6, (extApciType))
-    if _extApciTypeErr != nil {
-        return errors.New("Error serializing 'extApciType' field " + _extApciTypeErr.Error())
-    }
+	// Discriminator Field (extApciType) (Used as input to a switch field)
+	extApciType := uint8(child.ExtApciType())
+	_extApciTypeErr := io.WriteUint8(6, (extApciType))
+	if _extApciTypeErr != nil {
+		return errors.New("Error serializing 'extApciType' field " + _extApciTypeErr.Error())
+	}
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *ApduDataExt) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataExtOpenRoutingTableRequest":
-                        var dt *ApduDataExtOpenRoutingTableRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataExtOpenRoutingTableRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataExtReadRoutingTableRequest":
-                        var dt *ApduDataExtReadRoutingTableRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataExtReadRoutingTableRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataExtReadRoutingTableResponse":
-                        var dt *ApduDataExtReadRoutingTableResponse
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataExtReadRoutingTableResponse)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataExtWriteRoutingTableRequest":
-                        var dt *ApduDataExtWriteRoutingTableRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataExtWriteRoutingTableRequest)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.knxnetip.readwrite.ApduDataExtReadRouterMemoryRequest":
-                        var dt *ApduDataExtReadRouterMemoryRequest
-                        if m.Child != nil {
-                            dt = m.Child.(*ApduDataExtReadRouterMemoryRequest)
-                        }
... 38705 lines suppressed ...