SyncML4J provides support for all the mandatory DS 1.1.2 client wire commands. As a framework, SyncML4J supports user-defined data sources (or databases). These can range from simple opaque resources, such as memos and images, to complex schema-aware data types such as relational databases or PIM databases. The framework enables the data sources and their capabilities to be modeled by implementing the SyncSource and SyncSourceCap interfaces respectively. The implementation is then registered into the device tree as a DSSource node. A new (or existing) DSAcc node models the account information, such as server address and credentials and the set of local databases that can be synchronized by this account. Within the DSAcc, for each DSSource node there is a corresponding DSTarget node, recording the corresponding remote database URI, and credential and anchor information. No support is provided in the framework to assist with conflict resolution or duplicate detection; these are implicit responsibilities of implementers of the SyncSource interface.
Parent topic: Understanding SyncML development