次の方法で共有


OMA DM プロビジョニング ファイルの構造

OMA DM コマンドは、メッセージ内のサーバーとクライアント デバイスの間で送信されます。 メッセージには、1 つ以上のコマンドを含めることができます。 サポートされているコマンドの一覧については、 OMA DM プロトコルサポートの表を参照してください。

DM メッセージは XML ドキュメントです。 ドキュメントの構造と内容は、OMA Web サイトから入手できる OMA DM 表現プロトコル (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd) で定義されています。

各メッセージは、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>

ファイル形式

次の例は、デモ目的でのみ OMA DM バージョン 1.2.1 を使用してサーバーから送信される XML ドキュメントの一般的な構造を示しています。 クライアントとサーバーの間で交換される初期 XML パッケージには、より多くの XML タグが含まれている可能性があります。 これらのパッケージの詳細な説明とサンプルについては、OMA デバイス管理 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>

SyncHdr 要素

SyncHdr には、次の情報が含まれています。

  • ドキュメントの種類の定義 (DTD) とプロトコルのバージョン番号

  • セッションとメッセージの識別子。 同じ DM セッション内の各メッセージには、異なる MsgID が必要です。

  • メッセージの送信元と送信先の Uniform Resource Identifier (URI)

  • 認証の資格情報

この情報は、DM セッションを適切に管理するためにクライアント デバイスによって使用されます。

コードの例

次の例は、DM メッセージのヘッダー コンポーネントを示しています。 この場合、OMA DM バージョン 1.2 は例としてのみ使用されます。

デバイス生成 DM パッケージの SyncHdr 内の <Source> 要素の<LocURI>ノード値は、./DevInfo/DevID の値と同じである必要があります。 DevID の詳細については、「 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>

SyncBody 要素

SyncBody には、1 つ以上の DM コマンドが含まれています。 SyncBody には複数の DM コマンドを含めることができます。各コマンドには、異なる CmdID 値が必要です。

コードの例

次の例は、DM メッセージの本文コンポーネントを示しています。 この例では、SyncBody には Get というコマンドが 1 つだけ含まれています。 このコマンドは、Get コマンドの終了タグの直後に発生する <Final /> タグによって示されます。

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

OMA DM プロビジョニング用の SyncML を使用している場合、SyncBody の LocURI は、最初のセグメントでのみ有効なセグメント名として "." を持つことができます。 ただし、"." は他のセグメントの有効なセグメント名ではありません。 たとえば、次の LocURI は有効ではありません。7 番目のセグメントのセグメント名は "." です。

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

デバイス設定の更新の例

Replace コマンドは、デバイス設定を更新するために使用されます。

次の例は、Replace コマンドを使用してデバイス設定を更新する方法を示しています。

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