When transferring record type structured data with fixed field lengths, using strings like in the RecordTypeMessage may cause problems:
- If the string length for some fields may be different in source and destination system due to different string encoding, when dealing with non-western characters like for example a Korean charset.
- If field values may contain line breaks which are interpreted as record ends.
In these cases the use of the ByteArrayListMessage is more convenient. Here the interface content is read into a list of byte arrays - one byte array for each record.
The configuration and interface definition of ByteArrayListMessages is very similar to RecordTypeMessages (described here), with a few differences:
- The interface definition file is simpler, according to
XBUS_HOME/etc/InterfaceDescriptions/InterfaceSpecSimple.dtd
.
- The internal XML format is slightly different.
- ByteArrayListMessage
- This message module is used for transferring byte array lists without transformation of
the interface content. The processing of records in byte array lists involves parsing to
single filed values because this is the only way to correctly treat different string lengths
because of the character encoding.