2.2.1.5 Externally Encoded Data Types - Non-Groupable

The following specifies the data types that are constructed from multiple base types:

 EXTERNAL-VTDATA-NONGROUPABLE = ( VT-DISPATCH INTERFACEVAL )
  
 INTERFACEVAL     = NULLINDICATOR / 
                    (ZEROBYTE INTERFACEDATA)
 INTERFACEDATA    = INTERFACEID IMPLEMENTATIONID DATASTREAM
 INTERFACEID      = 16BYTE
 IMPLEMENTATIONID = 16BYTE
 DATASTREAM       = *(BYTE)

Calling applications or protocols making use of RDS MUST provide serialization and deserialization routines for sending and receiving INTERFACEDATA. RDS does not provide length counting for DATASTREAM, so the caller MUST format the DATASTREAM in such a way that the end of the sequence of bytes is determinable; for example, by using an end-of-stream delimiter.

INTERFACEID and IMPLEMENTATIONID are used by the caller to uniquely distinguish the type of the bytes that follow it in the DATASTREAM component.<13>