Auf Englisch lesen

Freigeben über


Struktur der OMA-DM-Bereitstellungsdateien

OMA DM-Befehle werden zwischen dem Server und dem Clientgerät in Nachrichten übertragen. Eine Nachricht kann einen oder mehrere Befehle enthalten. Eine Liste der unterstützten Befehle finden Sie in der Tabelle zur Unterstützung des OMA DM-Protokolls.

Eine DM-Nachricht ist ein XML-Dokument. Struktur und Inhalt des Dokuments sind im OMA DM Representation Protocol (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd) definiert, das auf der OMA-Website verfügbar ist.

Jede Nachricht besteht aus einem Header, der durch das SyncHdr-Element angegeben wird, und einem Nachrichtentext, der durch das SyncBody-Element angegeben wird.

In der folgenden Tabelle sind die unterstützten OMA DM-Versionen aufgeführt.

Version Format
OMA DM Version 1.1.2 <SyncML xmlns='SYNCML:SYNCML1.1'></SyncML>
OMA DM Version 1.2 <SyncML xmlns='SYNCML:SYNCML1.2'></SyncML>

Dateiformat

Das folgende Beispiel zeigt die allgemeine Struktur des XML-Dokuments, das vom Server mit OMA DM Version 1.2.1 nur zu Demonstrationszwecken gesendet wird. Die anfänglichen XML-Pakete, die zwischen Client und Server ausgetauscht werden, können weitere XML-Tags enthalten. Eine ausführliche Beschreibung und Beispiele für diese Pakete finden Sie in der Spezifikation OMA Geräteverwaltung Protocol 1.2.1.

XML
<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>

SyncHdr-Element

SyncHdr enthält die folgenden Informationen:

  • Dokumenttypdefinition (DTD) und Protokollversionsnummern

  • Sitzungs- und Nachrichtenbezeichner. Jede Nachricht in derselben DM-Sitzung muss eine andere MsgID aufweisen.

  • URIs (Uniform Resource Identifiers) für Nachrichtenquelle und -ziel

  • Anmeldeinformationen für die Authentifizierung

Diese Informationen werden vom Clientgerät verwendet, um die DM-Sitzung ordnungsgemäß zu verwalten.

Codebeispiel

Das folgende Beispiel zeigt die Headerkomponente einer DM-Nachricht. In diesem Fall wird nur OMA DM Version 1.2 als Beispiel verwendet.

Hinweis

Der <LocURI> Knotenwert für das <Source> Element im SyncHdr des vom Gerät generierten DM-Pakets sollte mit dem Wert von ./DevInfo/DevID identisch sein. Weitere Informationen zu DevID finden Sie unter DevInfo-Konfigurationsdienstanbieter.

XML
<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-Element

SyncBody enthält mindestens einen DM-Befehl. SyncBody kann mehrere DM-Befehle enthalten. Jeder Befehl muss einen anderen CmdID-Wert aufweisen.

Codebeispiel

Das folgende Beispiel zeigt die Textkomponente einer DM-Nachricht. In diesem Beispiel enthält SyncBody nur einen Befehl, Get. Dieser Befehl wird durch das <Final /> Tag angegeben, das unmittelbar nach dem abschließenden Tag für den Get-Befehl auftritt.

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

Wenn SyncML für die OMA DM-Bereitstellung verwendet wird, kann ein LocURI in SyncBody nur im ersten Segment einen "." als gültigen Segmentnamen aufweisen. Ein "." ist jedoch kein gültiger Segmentname für die anderen Segmente. Der folgende LocURI ist beispielsweise ungültig, da der Segmentname des siebten Segments "." lautet.

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

Beispiel zum Aktualisieren von Geräteeinstellungen

Der Befehl Ersetzen wird verwendet, um eine Geräteeinstellung zu aktualisieren.

Im folgenden Beispiel wird veranschaulicht, wie Sie den Befehl Ersetzen verwenden, um eine Geräteeinstellung zu aktualisieren.

XML
<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>