Ағылшын тілінде оқу

Бөлісу құралы:


Структура файлов подготовки OMA DM

Команды OMA DM передаются между сервером и клиентским устройством в сообщениях. Сообщение может содержать одну или несколько команд. Список поддерживаемых команд см. в таблице поддержки протокола OMA DM.

Сообщение DM — это XML-документ. Структура и содержимое документа определены в протоколе представления OMA DM (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd), доступном на веб-сайте OMA.

Каждое сообщение состоит из заголовка, заданного элементом SyncHdr, и текста сообщения, заданного элементом SyncBody.

В следующей таблице показаны поддерживаемые версии OMA DM.

Версия Формат
OMA DM версии 1.1.2 <SyncML xmlns='SYNCML:SYNCML1.1'></SyncML>
OMA DM версии 1.2 <SyncML xmlns='SYNCML:SYNCML1.2'></SyncML>

Формат файла

В следующем примере показана общая структура XML-документа, отправляемого сервером с использованием OMA DM версии 1.2.1 только для демонстрационных целей. Исходные XML-пакеты, обмениваются между клиентом и сервером, могут содержать больше XML-тегов. Подробное описание и примеры для этих пакетов см. в спецификации протокола OMA Управление устройствами 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

SyncHdr содержит следующие сведения:

  • Определение типа документа (DTD) и номера версий протокола

  • Идентификаторы сеансов и сообщений. Каждое сообщение в одном сеансе dm должно иметь разные идентификаторы MsgID.

  • Универсальные идентификаторы ресурсов (URI) источника и назначения сообщений

  • Учетные данные для проверки подлинности

Эти сведения используются клиентским устройством для правильного управления сеансом dm.

Пример кода

В следующем примере показан компонент заголовка сообщения dm. В этом случае в качестве примера используется только OMA DM версии 1.2.

Ескерім

Значение <LocURI> узла элемента <Source> в SyncHdr пакета DM, созданного устройством, должно совпадать со значением ./DevInfo/DevID. Дополнительные сведения о DevID см. в разделе Поставщик службы конфигурации DevInfo.

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

SyncBody содержит одну или несколько команд DM. SyncBody может содержать несколько команд dm; Каждая команда должна иметь другое значение CmdID.

Пример кода

В следующем примере показан основной компонент сообщения dm. В этом примере SyncBody содержит только одну команду Get. Эта команда обозначается тегом <Final /> , который возникает сразу после завершающего тега для команды Get.

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

При использовании SyncML для подготовки OMA DM LocURI в SyncBody может иметь "." в качестве допустимого имени сегмента только в первом сегменте. Однако "." не является допустимым именем сегмента для других сегментов. Например, следующий LocURI недопустим, так как имя сегмента седьмого сегмента — ".".

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

Пример обновления параметров устройства

Команда Заменить используется для обновления параметра устройства.

В следующем примере показано, как обновить параметр устройства с помощью команды Replace.

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>