Data, Stanzas, Packets - Data Flow and Processing

Data received from the network are read from the network sockets as bytes by code in tigase.io package. Bytes then are changed into characters in classes of tigase.net package and as characters they are put to XML parser (tigase.xml) which turns them to XML DOM structures.

All data inside the server are exchanged in XML DOM form as this is the format used by XMPP protocol. For basic XML data processing (parsing characters stream, building DOM, manipulate XML elements and attributes) we use Tigase XML parser and DOM builder.

Each stanza is stored in tigase.xml.Element object. Every Element can contain any number of child Elements and any number of attributes. You can access all these data through the class API.

To simplify some, most common operations Element is wrapped in tigase.server.Packet class which offer another level of API for the most common operations like preparation of response stanza based on the element it contains (swap to/from values, put type=result attribute and so on…​).