ヘッダーをスキップ
Oracle Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド
11gリリース1(11.1.1)
B56242-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

B DSML構文

Directory Services Mark-up Language(DSML)はOracle Fusion Middleware 11gリリース1(11.1.1)では推奨されません。今後のリリースでサポートされない可能性があります。

この付録では、次の項目について説明します。

B.1 DSMLの機能

ディレクトリ・サービスは、分散コンピューティングの主要部分を形成します。XMLは、インターネット・アプリケーションの標準的なマークアップ言語になりつつあります。ディレクトリ・サービスがインターネットで普及するにつれ、ディレクトリ情報をXMLデータで表現することの必要性が急速に高まっています。この機能を使用すると、LDAPディレクトリ・サーバーとの情報交換が必要な、LDAPを認識しないアプリケーションの種類の増加に対応できます。

Directory Services Markup Language(DSML)は、LDAP情報および操作のXML表現を定義します。LDAP Data Interchange Format(LDIF)は、ディレクトリ情報、またはディレクトリ・エントリに適用する一連の変更の伝達に使用します。前者は属性値レコード、後者は変更レコードと呼ばれます。

B.2 DSMLの利点

Oracle Internet Directoryおよびインターネット・アプリケーションでDSMLを使用すると、異なるソースのデータを柔軟に統合できるようになります。また、DSMLを使用すると、LDAPを使用しないアプリケーションでLDAPベースのアプリケーションと通信でき、Oracle Internet Directoryクライアント・ツールによって生成されたデータの操作やファイアウォールを経由したディレクトリへのアクセスが容易になります。

DSMLはXMLに基づき、Webでの配信のために最適化されています。XML形式の構造化データは均一で、アプリケーションまたはベンダーから独立しています。そのため、できるだけ多くの新しいフラット・ファイル・タイプの同期コネクタが作成されます。XML形式にすると、ディレクトリ・データが中間層で使用可能になり、中間層でより有効な検索を実行できます。

B.3 DSML構文

DSMLバージョン1の文書は、ディレクトリ・エントリまたはディレクトリ・スキーマ(あるいはその両方)を定義します。各ディレクトリ・エントリには、識別名(DN)と呼ばれる一意の名前があります。ディレクトリ・エントリには、ディレクトリ属性と呼ばれるプロパティと値のペアがいくつかあります。各ディレクトリ・エントリは、複数のオブジェクト・クラスのメンバーです。エントリのオブジェクト・クラスは、エントリが取得できるディレクトリ属性を制約します。このような制約は、ディレクトリ・スキーマで定義されます。ディレクトリ・スキーマは、同一のDSML文書または別の文書に含まれます。

次の項では、DSMLのトップレベルの構造およびディレクトリ・エントリとスキーマ・エントリの表現方法の概要を説明します。

B.3.1 トップレベルの構造

DSMLのトップレベルでの文書要素の型はdsmlです。次の型の子要素を持ちます。

directory-entries
directory-schema

また、子要素directory-entriesは、型entryの子要素を持ちます。同様に、子要素directory-schemaは型classおよびattribute-typeの子要素を持ちます。

トップレベルでのDSML文書の構造は次のとおりです。

<!- a document with directory & schema entries -->
  <dsml:directory-entries>
    <dsml:entry dn="...">...</dsml:entry>
    .
    .
    .
  </dsml:directory-entries>
  .
  .
  .
  <dsml:directory-schema>
    <dsml:class id="..." ...>...</dsml:class>
    <dsml:attribute-type id="..." ...>...</dsml:attribute-type>
    .
    .
    .
  </dsml:directory-schema></dsml:dsml>

B.3.2 ディレクトリ・エントリ

要素型entryは、DSML文書のディレクトリ・エントリを表します。entry要素には、エントリのディレクトリ属性を表す要素が含まれます。エントリの識別名は、XML属性dnで指定します。

次に、ディレクトリ・エントリを記述するXMLエントリを示します。


<dsml:entry dn="uid=Heman, c=in, dc=oracle, dc=com">
<dsml:objectclass>
  <dsml:oc-value>top</dsml:oc-value>
  <dsml:oc-value ref="#person">person</dsml:oc-value>
  <dsml:oc-value>organizationalPerson</dsml:oc-value>
  <dsml:oc-value>inetOrgPerson</dsml:oc-value>
</dsml:objectclass>
<dsml:attr name="sn">
<dsml:value>Siva</dsml:value></dsml:attr>
<dsml:attr name="uid">
<dsml:value>Heman</dsml:value></dsml:attr>
<dsml:attr name="mail">
<dsml:attr name="givenname">
<dsml:value>Siva V. Kumar</dsml:value></dsml:attr>
<dsml:attr name="cn">
<dsml:value>SVK@example.com</dsml:value></dsml:attr>
<dsml:value>Siva Kumar</dsml:value></dsml:attr>

oc-value's refは、オブジェクト・クラスを定義するクラス要素へのURI参照です。この例の場合は、personオブジェクト・クラスを定義する要素へのURI [9]参照です。子要素objectclassおよびattrは、ディレクトリ・エントリのオブジェクト・クラスおよび属性を指定するために使用します。

B.3.3 スキーマ・エントリ

要素型classは、DSML文書のスキーマ・エントリを表します。class要素は、参照を容易にするためにXML属性idを取ります。

たとえば、personオブジェクト・クラスのオブジェクト・クラス定義は次のようになります。

<dsml:class id="person" superior="#top"  type="structural">
  <dsml:name>person</dsml:name>
  <dsml:description>...</dsml:description>
  <dsml:object-identifier>2.5.6.6</object-identifier>
  <dsml:attribute ref="#sn" required="true"/>
  <dsml:attribute ref="#cn" required="true"/>
  <dsml:attribute ref="#userPassword" required="false"/>
  <dsml:attribute ref="#telephoneNumber" required="false"/>
  <dsml:attribute ref="#seeAlso" required="false"/>
  <dsml:attribute ref="#description" required="false"/>
</dsml:class>

ディレクトリ属性も同様に記述されます。たとえば、cn属性の属性定義は次のようになります。

<dsml:attribute-type id="cn">
  <dsml:name>cn</dsml:name>
  <dsml:description>...</dsml:description>
  <dsml:object-identifier>2.5.4.3</object-identifier>
  <dsml:syntax>1.3.6.1.4.1.1466.115.121.1.44</dsml:syntax>
</dsml:attribute-type>

B.4 DSMLで使用可能なツール

XMLフレームワークを使用すると、LDAP以外のアプリケーションを使用してディレクトリ・データにアクセスできます。XMLフレームワークはアクセス・ポイントを広範囲に定義し、次のツールを提供します。

クライアント・ツールldifwriteは、ディレクトリ・データおよびスキーマのLDIFファイルを生成します。これらのLDIFファイルをXMLに変換すると、XMLファイルをアプリケーション・サーバーに格納し、このXMLファイルに対して問合せを行うことができます。LDAPサーバーに対してLDAP操作を実行する場合と比べ、問合せとレスポンスにかかる時間が短縮されます。