Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.


From Wiki
Jump to: navigation, search
Article Metadata
Created: vasant21 (17 May 2007)
Last edited: hamishwillee (31 Jul 2012)

SyncML (Synchronization Markup Language) is an XML-based technology for universal data synchronization of networked devices. Ericsson, IBM, Lotus, Motorola, Matsushita Corporation, Nokia, Openwave, Starfish Software, and Symbian are the sponsoring members of the SyncML initiative, and drive the development of the technology together with Promoter members. The objective of the SyncML technology is to enable synchronization of any networked data with any mobile device and to ensure seamless interoperability between devices.

SyncML is designed for use between mobile devices that are intermittently connected to the network and network services that are continuously available on the network. However, SyncML can also be used for peer-to-peer data synchronization. SyncML is specifically designed to handle cases where network services and mobile devices store the data in different formats or use different software systems.

To ensure interoperability, SyncML describes how common data formats are represented over the network. SyncML permits the definition of new data formats as needs arise, ensuring extensibility. Operators will be able to offer a common interface to their customers, regardless of the type of mobile device. First implementations of SyncML enable users with a SyncML-enabled device to always have an up-to-date calendar and contacts database.

SyncML Requirements

A SyncML-compliant server with a SyncML server agent and a synchronization engine is required to complete the end-to-end system. The typical solution comprises a database server and an application server. The SyncML server is integrated with other network elements, such as authentication, billing and profiling, in an operator's network.

A user normally initiates the synchronization session from the terminal. A data call connection (CSD or GPRS) is then established between the SyncML client and the SyncML server. The data interchange begins when the client has been authenticated. The SyncML server manages the synchronization process, during which the following takes place:

  • New data is uploaded to the terminal or the application server
  • Deleted data is removed from the terminal or the application server
  • Modified data is updated in the terminal or the application server

Unmodified data is not exchanged, thereby saving time and precious bandwidth. When the operation is completed, both the server and the client update their log files to keep them up-to-date for the next synchronization session.

SyncML C Reference Toolkit

This toolkit provides a reference implementation of the SyncML protocols. The toolkit is designed for both Clients and Servers, for a variety of platforms.

It can be found at :

Revellations, bugs, basics of format

We post here links to articles, which reveal essentials of connections to SyncML.

  • publicid version 1.1, rather 1.0
    The message contains a list of related articles to documentation on SyncML , WBXML.
    Includes a bug report on the main issue with initial connection by newcomers to SyncML, which blocks all further efforts for weeks.
This page was last modified on 31 July 2012, at 10:23.
96 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.