Compartilhar via


Estrutura dos arquivos de provisionamento do OMA DM

Os comandos do DM OMA são transmitidos entre o servidor e o dispositivo cliente nas mensagens. Uma mensagem pode conter um ou mais comandos. Para obter uma lista dos comandos suportados, veja a tabela no suporte do protocolo OMA DM.

Uma mensagem DM é um documento XML. A estrutura e o conteúdo do documento estão definidos no Protocolo de Representação OMA DM (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd) disponível no site do OMA.

Cada mensagem é composta por um cabeçalho, especificado pelo elemento SyncHdr e um corpo da mensagem, especificado pelo elemento SyncBody.

A tabela seguinte mostra as versões do DM OMA suportadas.

Versão Formato
OMA DM versão 1.1.2 <SyncML xmlns='SYNCML:SYNCML1.1'></SyncML>
OMA DM versão 1.2 <SyncML xmlns='SYNCML:SYNCML1.2'></SyncML>

Formato do arquivo

O exemplo seguinte mostra a estrutura geral do documento XML enviado pelo servidor com a versão OMA DM 1.2.1 apenas para fins de demonstração. Os pacotes XML iniciais trocados entre o cliente e o servidor podem conter mais etiquetas XML. Para obter uma descrição detalhada e exemplos desses pacotes, veja a especificação OMA Gerenciamento de Dispositivos 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

O SyncHdr inclui as seguintes informações:

  • Definição do Tipo de Documento (DTD) e números de versão do protocolo

  • Identificadores de sessão e mensagens. Cada mensagem na mesma sessão DM tem de ter um MsgID diferente.

  • Origem da mensagem e Identificadores de Recursos Uniformes de destino (URIs)

  • Credenciais para autenticação

Estas informações são utilizadas pelo dispositivo cliente para gerir corretamente a sessão de DM.

Exemplo de código

O exemplo seguinte mostra o componente de cabeçalho de uma mensagem DM. Neste caso, a versão 1.2 do DM OMA é utilizada apenas como exemplo.

Observação

O <LocURI> valor do nó para o <Source> elemento no SyncHdr do pacote de DM gerado pelo dispositivo deve ser o mesmo que o valor de ./DevInfo/DevID. Para obter mais informações sobre o DevID, veja DevInfo configuration service provider (Fornecedor de serviços de configuração de 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

O SyncBody contém um ou mais comandos de DM. O SyncBody pode conter vários comandos de DM; cada comando tem de ter um valor de CmdID diferente.

Exemplo de código

O exemplo seguinte mostra o componente do corpo de uma mensagem DM. Neste exemplo, SyncBody contém apenas um comando, Get. Este comando é indicado pela <Final /> etiqueta que ocorre imediatamente após a etiqueta de terminação do comando Obter.

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

Quando o aprovisionamento do SyncML para OMA DM está a ser utilizado, um LocURI no SyncBody pode ter um "." como um nome de segmento válido apenas no primeiro segmento. No entanto, um "." não é um nome de segmento válido para os outros segmentos. Por exemplo, o locURI seguinte não é válido porque o nome do segmento do sétimo segmento é ".".

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

Exemplo de definições de atualização do dispositivo

O comando Substituir é utilizado para atualizar uma definição de dispositivo.

O exemplo seguinte ilustra como utilizar o comando Substituir para atualizar uma definição de 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>