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