ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager管理者ガイド
11g リリース2 (11.1.2.2.0)
B69535-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

D XMLスキーマの登録用XSD

階層属性データをOracle Identity Managerでシードするには、XSDごとに1つのXMLを作成し、カタログ同期化ジョブ・スケジュール済ジョブを使用して、そのXMLをOracle Identity Managerスキーマにロードします。Oracle Identity Managerスキーマが存在するデータベースのバージョンに応じて、適切なXML記憶域モデルが階層データの格納に使用されます。データベースにXMLスキーマを登録するために使用するXSD構造は、次の各項で説明するように、データベースのバージョンに応じて使用されるXSDスキーマの注釈のみが異なります。

D.1 Oracle Database 11gリリース1以降

Oracle Database 11gリリース1以降を使用している場合は、XMLスキーマの登録にバイナリXML記憶域モデルが使用されます。XSDスキーマのURLと構造は次のとおりです。

schemaurl:

http://localhost/public/xsd/hierarchicalEntitlement.xsd

schemadoc:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"  xmlns:xdb="http://xmlns.oracle.com/xdb">
<xs:element name="oim" xdb:defaultTable="" >
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="applicationInstances"/>  <!-- instead of namesapces/endpoints in OIA we can take in a list of application instances-->
      <xs:element ref="attributes"/>            <!-- you start with the attributes instead of the values -->
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="applicationInstances" xdb:defaultTable="" >
    <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" ref="applicationInstance" />
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="applicationInstance" type="xs:string" xdb:defaultTable=""/>
<xs:element name="attributes"  xdb:defaultTable="">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="attribute"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="attribute"  xdb:defaultTable="">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="entitlementValues"/>
      </xs:sequence>
      <xs:attribute name="name" use="required"/>
    </xs:complexType>
</xs:element>
<xs:element name="entitlementValues" xdb:defaultTable="">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="entitlementValue" xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_EVAL"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="entitlementValue" xdb:defaultTable="">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" ref="value"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="description"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="attributes"/>
      </xs:sequence>
      <xs:attribute name="id"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="value" type="xs:string"  xdb:defaultTable=""/>
  <xs:element name="description" type="xs:string"  xdb:defaultTable=""/>
</xs:schema>

このXSD構造を使用してXMLスキーマの登録が完了すると、次のようになります。

DBMS_XMLSCHEMA.REGISTERSCHEMA
(
   SCHEMAURL => schemaurl,
   SCHEMADOC => schemadoc,
   LOCAL     => TRUE,
   GENTYPES  => FALSE,
   GENTABLES => TRUE,
   OPTIONS   => DBMS_XMLSCHEMA.REGISTER_BINARYXML
 )
/

表D-1に、XMLスキーマの登録が正常に完了した後でOracle Identity Managerスキーマに作成されるデータベース・オブジェクトのリストを示します。

表D-1 XMLスキーマの登録後に作成されるデータベース・オブジェクト

オブジェクト・タイプ 件数 オブジェクト名

LOB

1

システム生成

TRIGGER

1

システム生成

TABLE

1

CATALOG_HIERARCHICAL_ATTR_EVAL

INDEX

1

システム生成


その後で、次の問合せを実行してXMLスキーマの有無を検証し、Oracle Identity Managerスキーマに作成された基礎になる表のリストを取得します。

  • XMLスキーマの登録を検証するには:

    SELECT SCHEMA_URL FROM USER_XML_SCHEMAS;
    
  • 登録済XMLスキーマの基礎になる表を表示するには:

    SELECT * FROM USER_XML_TABLES;
    

D.2 Oracle Database 11gリリース1以前

11gリリース1より前のOracle Databaseを使用している場合は、XMLスキーマの登録に非構造(CLOB) XML記憶域モデルが使用されます。XSDスキーマのURLと構造は次のとおりです。

schemaurl:

http://localhost/public/xsd/hierarchicalEntitlement.xsd

schemadoc:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"      xmlns:xdb="http://xmlns.oracle.com/xdb">
  <xs:element name="oim" xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_OIM" >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="applicationInstances"/>  <!-- instead of namesapces/endpoints in OIA we can take in a list of application instances-->
        <xs:element ref="attributes"/>            <!-- you start with the attributes instead of the values -->
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="applicationInstances" xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_AINS" >
      <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" ref="applicationInstance" />
          </xs:sequence>
      </xs:complexType>
  </xs:element>
  <xs:element name="applicationInstance" type="xs:string" xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_AIN"/>
  <xs:element name="attributes"  xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_ATRS">
      <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="attribute"/>
        </xs:sequence>
      </xs:complexType>
  </xs:element>
  <xs:element name="attribute"  xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_ATR">
      <xs:complexType>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" ref="entitlementValues"/>
        </xs:sequence>
        <xs:attribute name="name" use="required"/>
      </xs:complexType>
  </xs:element>
  <xs:element name="entitlementValues" xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_EVLS">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="entitlementValue"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="entitlementValue" xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_EVL">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" ref="value"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="description"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="attributes"/>
      </xs:sequence>
      <xs:attribute name="id"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="value" type="xs:string"  xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_VAL"/>
  <xs:element name="description" type="xs:string"   xdb:defaultTable="CATALOG_HIERARCHICAL_ATTR_DESC"/>
</xs:schema>

このXSD構造を使用すると、次のようにXMLスキーマを登録できます。

DBMS_XMLSCHEMA.REGISTERSCHEMA
(
   SCHEMAURL => schemaurl,
   SCHEMADOC => schemadoc,
   LOCAL     => TRUE,
   GENTYPES     => FALSE,
   GENTABLES => TRUE
 )
/

表D-2に、XMLスキーマの登録が正常に完了した後でOracle Identity Managerスキーマに作成されるデータベース・オブジェクトのリストを示します。

表D-2 XMLスキーマの登録後に作成されるデータベース・オブジェクト

オブジェクト・タイプ 件数 オブジェクト名

LOB

9

システム生成

TABLE

9

CATALOG_HIERARCHICAL_ATTR_OIM

CATALOG_HIERARCHICAL_ATTR_AINS

CATALOG_HIERARCHICAL_ATTR_AIN

CATALOG_HIERARCHICAL_ATTR_ATRS

CATALOG_HIERARCHICAL_ATTR_ATR

CATALOG_HIERARCHICAL_ATTR_EVLS

CATALOG_HIERARCHICAL_ATTR_EVL

CATALOG_HIERARCHICAL_ATTR_VAL

CATALOG_HIERARCHICAL_ATTR_DESC

TRIGGER

9

システム生成

INDEX

9

システム生成


その後で、次の問合せを実行してXMLスキーマの有無を検証し、Oracle Identity Managerスキーマに作成された基礎になる表のリストを取得します。

  • XMLスキーマの登録を検証するには:

    SELECT SCHEMA_URL FROM USER_XML_SCHEMAS;
    
  • 登録済XMLスキーマの基礎になる表を表示するには:

    SELECT * FROM USER_XML_TABLES;