the messages themselves can be viewed as typed name-value fields and/or number-value fields (the two identification mechanisms within a message can mix and match with certain restrictions). a message can itself contain sub-messages which themselves may contain sub-messages, and so on.