SyncML

İşlem

Komutlardan önce, mesajlar işlemle ilgili çeşitli verileri belirten bir başlık içerir. Önceki örnekteki gibi bir yenileme senkronizasyonuna başlamak için Uyarı komutunu içeren örnek bir mesajdır:
<?xml version="1.0"?><!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd"><SyncML xmlns="SYNCML:SYNCML1.2">
 <SyncHdr>
  <VerDTD>1.1</VerDTD>
  <VerProto>SyncML/1.1</VerProto>
  <SessionID>1</SessionID>
  <MsgID>1</MsgID>
  <Target><LocURI>PC Suite</LocURI></Target>
  <Source><LocURI>IMEI:3405623856456</LocURI></Source>
  <Meta><MaxMsgSize xmlns="syncml:metinf">8000</MaxMsgSize></Meta>
 </SyncHdr>

 <SyncBody>
  <Alert>
   <CmdID>1</CmdID>
   <Data>203</Data>   <!-- 203 = mobile signals a refresh from it to computer -->
   <Item>
    <Target><LocURI>Events</LocURI></Target>
    <Source><LocURI>/telecom/cal.vcs</LocURI></Source>
    <Meta><Anchor xmlns="syncml:metinf"><Last>42</Last><Next>42</Next></Anchor></Meta>
   </Item>
  </Alert>

  <Final/>
 </SyncBody></SyncML>
Bilgisayardan gelen yanıt, bir xml belgesi gibi olabilir (yorumlar eklendi açıklama uğruna):
<?xml version="1.0"?><!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd"><SyncML>
 <SyncHdr>
  <VerDTD>1.1</VerDTD>
  <VerProto>SyncML/1.1</VerProto>
  <SessionID>1</SessionID>
  <MsgID>1</MsgID>
  <Target><LocURI>IMEI:3405623856456</LocURI></Target>
  <Source><LocURI>PC Suite</LocURI></Source>
 </SyncHdr>

 <SyncBody>

  <!-- accept the header of the last message from the client -->
  <Status>
   <CmdID>1</CmdID>
   <MsgRef>1</MsgRef>
   <CmdRef>0</CmdRef><!-- 0 = header of the message -->
   <Cmd>SyncHdr</Cmd>
   <TargetRef>PC Suite</TargetRef>
   <SourceRef>IMEI:3405623856456</SourceRef>
   <Data>200</Data><!-- 200 = ok, accepted -->
  </Status>

  <!-- accept the request of the mobile for a sync -->
  <Status>
   <CmdID>2</CmdID><!-- this is command #2 -->
   <MsgRef>1</MsgRef>
   <CmdRef>1</CmdRef><!-- it respond to command msg=1,cmd=1 -->
   <Cmd>Alert</Cmd>
   <TargetRef>Events</TargetRef>
   <SourceRef>/telecom/cal.vcs</SourceRef>
   <Meta><Anchor xmlns="syncml:metinf"><Next>0</Next><Last>0</Last></Anchor></Meta>
   <Data>200</Data><!-- 200 = ok, accepted -->
  </Status>

  <Final/>
 </SyncBody></SyncML>
İşlem daha sonra, Senk komutunu içeren mobilden bir mesaj ile devam eder.
Bu örnek, cep telefonunun tüm verilerini bilgisayara gönderdiği ve başka bir şekilde hiçbir şeyin gönderilmediği bir yenileme işlemidir. İlk Uyarı komutundaki farklı kodlar, diğer senkronizasyon türlerini başlatmak için kullanılabilir. Örneğin, bir "iki yönlü eşitleme" de, yalnızca son eşitlemeden gelen değişiklikler bilgisayara gönderilir, aynısı yapar.
Son ve Sonraki etiketler olası bir senkronizasyon kaybını takip etmek için kullanılır. Son olarak, her cihaz tarafından ölçülen son senkronizasyon işleminin zamanı gösterilir. Örneğin, bir mobil bilgisayar 20140112T213401Z gibi dizileri kullanırken, bir süreyi temsil etmek için aşamalı sayılar (1, 2, 3, ...) kullanabilir. Bu ikinci veri saklanır ve bir sonraki senkronizasyonda Son ile karşılaştırılır. Herhangi bir fark, senkronizasyon kaybını gösterir. Tüm verileri göndermeyi içeren uygun eylemler daha sonra cihazları tekrar senkronize etmek için alınabilir.
Ankrajlar sadece bir senkronizasyon kaybını tespit etmek için kullanılır, hangi verilerin gönderileceğini belirtmezler. Senkronizasyon durumu kaybı haricinde, normal (yenilenmeyen) bir senkronizasyonda, her cihaz son senkronizasyondan bu yana tüm değişiklikleri gönderir.