As described in Chapter 5, the Synchronization Protocol uses the services of the Representation Protocol, the MetInf DTD, and the DevInf DTD to create meaningful SyncML Messages and sessions. They are an integral part of the SyncML technology. Their position in the SyncML Data Synchronization Protocol stack is depicted in Figure 7-1. The element types of the MetInf DTD and the DevInf DTD are used inside the SyncML DTD as defined by the Representation Protocol. Consequently, the Synchronization Protocol utilizes the services of all three of these components.
Figure 7-1. SyncML Protocol architecture
Products enabling SyncML are required to support the MetInf and DevInf DTDs. With the transport protocols, there are more choices depending on the environment at which a product is targeted. The specified SyncML Transport Bindings for HTTP, WSP, and OBEX offer a comprehensive set of protocols to be utilized. For instance if a synchronization server product is designed to offer a network service, HTTP is a natural choice. Similarly, the WSP binding is the usual selection for a mobile device that supports WAP.
Figure 7-2 depicts an example of a SyncML Message sent from a Client to a Server. The example also shows how the Meta Information DTD and the Device Information DTD are utilized inside a SyncML Message. In addition, the Message shown is further encapsulated in a HTTP message. Further, various element types of the Representation Protocol encapsulate the element types of the MetInf and DevInf DTDs.
 Note that the example is for illustrative purposes and may not exactly reflect the specifications. Parts of the mandatory HTTP headers and SyncML commands are removed from the example to keep it short and understandable.
Figure 7-2. An example of a SyncML Message within an HTTP message
Figure 7-3 depicts a SyncML session as defined by the Synchronization Protocol. In addition, it shows how HTTP is used to carry SyncML Messages back and forth, and how a transport connection is enabled between a SyncML Client and Server. In the figure, the SyncML Client acts as a HTTP client and the SyncML Server as a HTTP server.
Figure 7-3. SyncML session and usage of HTTP
A SyncML Message formatted according to the Representation Protocol is only encapsulated by a message of the transport protocol and then transferred between a Client and a Server.