Struttura dei file di provisioning OMA DM

I comandi OMA DM vengono trasmessi tra il server e il dispositivo client nei messaggi. Un messaggio può contenere uno o più comandi. Per un elenco dei comandi supportati, vedere la tabella nel supporto del protocollo OMA DM.

Un messaggio dm è un documento XML. La struttura e il contenuto del documento sono definiti nel OMA DM Representation Protocol (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd) disponibile nel sito Web OMA.

Ogni messaggio è costituito da un'intestazione, specificata dall'elemento SyncHdr, e da un corpo del messaggio, specificato dall'elemento SyncBody.

La tabella seguente illustra le versioni di OMA DM supportate.

Versione Formato
OMA DM versione 1.1.2 <SyncML xmlns='SYNCML:SYNCML1.1'></SyncML>
OMA DM versione 1.2 <SyncML xmlns='SYNCML:SYNCML1.2'></SyncML>

Formato file

L'esempio seguente illustra la struttura generale del documento XML inviato dal server usando OMA DM versione 1.2.1 solo a scopo dimostrativo. I pacchetti XML iniziali scambiati tra client e server potrebbero contenere più tag XML. Per una descrizione dettagliata ed esempi per tali pacchetti, vedere la specifica OMA Gestione dispositivi Protocol 1.2.1.

<SyncML xmlns='SYNCML:SYNCML1.2'>
   <SyncHdr>
      <VerDTD>1.2</VerDTD>
      <VerProto>DM/1.2</VerProto>
      <SessionID>1</SessionID>
      <MsgID>1</MsgID>
      <Target>
         <LocURI>{unique device ID}</LocURI>
      </Target>
      <Source>
         <LocURI>https://www.contoso.com/mgmt-server</LocURI>
      </Source>
   </SyncHdr>
   <SyncBody>
      <!-- query a device OS system version -->
      <Get>
         <CmdID>2</CmdID>
         <Item>
            <Target>
               <LocURI>./DevDetail/SwV</LocURI>
            </Target>
         </Item>
      </Get>
      <!-- Update device policy -->

      <Final />
   </SyncBody>
</SyncML>

Elemento SyncHdr

SyncHdr include le informazioni seguenti:

  • Definizione del tipo di documento (DTD) e numeri di versione del protocollo

  • Identificatori di sessione e messaggio. Ogni messaggio nella stessa sessione dm deve avere un MsgID diverso.

  • URI (Uniform Resource Identifier) di origine e destinazione dei messaggi

  • Credenziali per l'autenticazione

Queste informazioni vengono usate dal dispositivo client per gestire correttamente la sessione di Gestione del database.

Esempio di codice

Nell'esempio seguente viene illustrato il componente di intestazione di un messaggio dm. In questo caso, OMA DM versione 1.2 viene usato solo come esempio.

Nota

Il <LocURI> valore del nodo per l'elemento <Source> in SyncHdr del pacchetto dm generato dal dispositivo deve essere uguale al valore di ./DevInfo/DevID. Per altre informazioni su DevID, vedere Provider del servizio di configurazione DevInfo.

<SyncHdr>
   <VerDTD>1.2</VerDTD>
   <VerProto>DM/1.2</VerProto>
   <SessionID>1</SessionID>
   <MsgID>1</MsgID>
   <Target>
      <LocURI>{unique device ID}</LocURI>
   </Target>
   <Source>
      <LocURI>https://www.contoso.com/mgmt-server</LocURI>
   </Source>
</SyncHdr>

Elemento SyncBody

SyncBody contiene uno o più comandi dm. SyncBody può contenere più comandi dm; ogni comando deve avere un valore CmdID diverso.

Esempio di codice

Nell'esempio seguente viene illustrato il componente del corpo di un messaggio dm. In questo esempio SyncBody contiene un solo comando, Get. Questo comando è indicato dal <Final /> tag che si verifica immediatamente dopo il tag di terminazione per il comando Get.

<SyncBody>
   <!-- query device OS software version -->
   <Get>
      <CmdID>2</CmdID>
      <Item>
         <Target>
            <LocURI>./DevDetail/SwV</LocURI>
         </Target>
      </Item>
   </Get>
   <Final />
</SyncBody>

Quando si usa SyncML per il provisioning di OMA DM, un LocURI in SyncBody può avere un "." come nome di segmento valido solo nel primo segmento. Tuttavia, un "." non è un nome di segmento valido per gli altri segmenti. Ad esempio, il locURI seguente non è valido perché il nome del segmento del settimo segmento è ".".

<LocURI>./Vendor/MSFT/Registry/HKLM/Security/./Test</LocURI>

Esempio di aggiornamento delle impostazioni del dispositivo

Il comando Sostituisci viene usato per aggiornare un'impostazione del dispositivo.

L'esempio seguente illustra come usare il comando Sostituisci per aggiornare un'impostazione del dispositivo.

<SyncHdr>
   <VerDTD>1.2</VerDTD>
   <VerProto>DM/1.2</VerProto>
   <SessionID>1</SessionID>
   <MsgID>1</MsgID>
   <Target>
      <LocURI>{unique device ID}</LocURI>
   </Target>
   <Source>
      <LocURI>https://www.contoso.com/mgmt-server</LocURI>
   </Source>
</SyncHdr>
<SyncBody>
   <!-- update device setting -->
   <Replace>
      <CmdID>2</CmdID>
      <Item>
         <Target>
            <LocURI>./Vendor/MSFT/PolicyManager/My/DeviceLock/MinDevicePasswordLength</LocURI>
         </Target>
         <Meta>
            <Type xmlns="syncml:metinf">text/plain</Type>
            <Format xmlns="syncml:metinf">int</Format>
         </Meta>
         <Data>6</Data>
      </Item>
   </Replace>
   <Final />
</SyncBody>