Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use xml Codec commonly used in netty

Shulou Source: shulou.com Published: 2022-05-31 17:23:30 09月21日 Update

This article mainly explains "how to use the xml codec commonly used in netty". The content in the article is simple and clear, and it is easy to learn and understand. Please follow the editor's train of thought to study and learn "how to use the xml codec commonly used in netty".

Brief introduction

Before json, xml is the most commonly used data transmission format. Although there are a lot of redundant data in xml, the structure of xml is simple and clear, and it is still used in different places in the program. For netty, it naturally provides support for xml data.

Netty supports xml in two aspects. The first aspect is to split the encoded xml data into frame, and each frame contains a complete xml. On the other hand, the segmented frame is parsed for xml semantics.

XmlFrameDecoder can be used for frame splitting, and XmlDecoder can be used for parsing the contents of xml files. Next, we will explain in detail the implementation and use of two decoder.

XmlFrameDecoder

Because we are receiving a data stream, we are not sure what the received data looks like. A normal xml data may be split into multiple data frame.

As follows:

+-+

| | |

+-+

This is normal xml data, but it is split into three frame, so we need to merge it into one frame as follows:

+-+

| | |

+-+

It is also possible for different xml data to be split into multiple frame, as follows:

+-+

| | content |

+-+

The above data needs to be split into two frame:

+-- +

| | content |

+-- +

The logic of splitting is simple, mainly by judging the position of the delimiter of the xml to determine whether the xml begins or ends. There are three delimiters in xml, which are'

Tags: Data Common Encoding content Decoder two method different three Delimiter multiple Logic Learning next location element object that is situation aspect Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Shulou Technology NVidia Shulou Information Microsoft MySQL