Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
A self-describing message contains the data and metadata describing the format and meaning of a message. They usually contain all the data needed to understand the message, and all the information necessary to complete a task. Self-describing messages help in reducing the amount of coupling between components throughout the system, and in facilitating independent evolution of client-server components.
A self-describing message may include syntax and semantics, an Extensible Markup Language (XML) is an example of a self-describing message containing tag and value pairs. Essentially, self-describing messages contain both the metadata describing the message schema, and the values that correspond to the schema.
Each message contains information describing how to processes the message. An example is when a specification of media type is done using Content-Type header, such as:
The self-describing message allows the receiving end to understand how to interpret the message parameters and associated types. During the interaction between a client and a server, the client’s request and the response from the server are usually in the form of messages. Some applications expect these messages passed between the two to be self-descriptive, and this allows the applications to understand the messages such as those in XML.
An XML self-descriptive message may contain the sender and receiver information, a heading and a message body. The XML can thus be considered as information wrapped in tags, and a piece of software must therefore be used to send, receive, display or store the information.
Self-describing messages state object types, associate properties with Internationalized Resource Identifiers (IRIs) and use terms that have been defined in a referenced text, in addition specifying the property types in context.
Additionally, they provide applications with more flexibility of changing the message content or adding fields without re-coding all the receiving applications.