22 Oracle XML DBリポジトリの構成
Oracle XML DBリポジトリの構成全体が、すべてのリポジトリ・リソースに適用されます。これには、イベント処理やXLinkおよびXInclude処理の管理に関するパラメータの構成は含まれていません。リソース構成ファイルを使用して、リソースを構成します。
関連項目:
リポジトリ専用の表領域の使用方法の詳細は、パッケージDBMS_XDB_ADMINを参照してください。
- リソース構成ファイル
Oracle XML DBリポジトリ・リソースは、リソースについて構成可能なパラメータを定義するリソース構成ファイルと関連付けて、あらゆる目的で構成します。リソース構成ファイル自体がOracle XML DBリポジトリのリソースです。 - リソースの構成
Oracle XML DBリポジトリ・リソースの構成には、構成ファイルを作成し、そのファイルを構成リソースとしてリポジトリに追加し、および構成リソースをそれが構成するリソースまたはリポジトリ全体にマッピングすることが含まれます。 - 共通の構成パラメータ
共通で使用される構成パラメータ、つまり構成ファイル内の要素について説明します。 
関連トピック
親トピック: Oracle XML DBリポジトリ
22.1 リソース構成ファイル
Oracle XML DBリポジトリ・リソースは、リソースについて構成可能なパラメータを定義するリソース構成ファイルと関連付けて、あらゆる目的で構成します。リソース構成ファイル自体がOracle XML DBリポジトリのリソースです。
リソース構成ファイルは、パス/sys/schemas/PUBLIC/xmlns.oracle.com/xdb/XDBResConfig.xsdにあるOracle XML DBリポジトリでアクセスできるXML Schema XDBResConfig.xsdに準拠するXMLファイルです。このXML SchemaはOracle XML DBで定義されているため、変更できません。
                  
PL/SQLプロシージャDBMS_RESCONFIG.addResConfigを使用して、構成ファイルにリソースをマップします。1つのリソース構成ファイルをリポジトリ内のすべてのリソースに適用することもできます。その場合は、PL/SQLプロシージャDBMS_RESCONFIG.addRepositoryResConfigを使用して、リソースをまとめてリポジトリにマップします。
                  
同じリソース構成ファイルを使用して、必要に応じて複数のリソースを構成できます。同一の構成が有効である場合は、このようにリソース間で構成ファイルを共有させることをお薦めします。これにより実行時のパフォーマンスを向上させることができます。また、1箇所で構成を更新した場合に変更が複数のリソースに適用されることにより、リポジトリ管理が簡略化されます。
複数の、同一のリソース構成ファイルを作成しないでください。パフォーマンスに悪影響を与える可能性があります。Oracle XML DBにより重複したリソース構成ファイルが検出されると、エラーが発生します。
通常、1つのアプリケーションに対して使用するリソースを1つ構成します。1つのリソースを複数のアプリケーションで共有するには、異なるアプリケーションがリソースを様々な方法で構成できることが必要です。そのためには、複数のリソース構成ファイルを作成し、それらを同じリソースにマップします。これにより、各リソースはリソース構成リストという構成リストに関連付けられます。構成リストに含まれる構成は、リストに記載された順番に処理されます。
リポジトリ自体が、リポジトリ内のすべてのリソースの構成を意味する、リポジトリ全体の構成に対するリソース構成ファイルのリストを持っています。同じ構成ファイルをリポジトリ自体と特定のリソースの両方で使用しないでください。そうでない場合は、エラーが発生します。また、同じリソース構成ファイルが任意のリソース構成リストに複数回表示される場合にもエラーが発生します。
注意:
リポジトリ全体の構成で125を超えるリソース構成ファイルを作成しようとすると、エラーが発生します。
新規リソースのリソース構成リストは、新規リソースの親フォルダのすべてのリソース構成ファイルのconfiguration要素に記述された情報に基づいています。該当する情報がない(構成ファイルがない、またはファイルにdefaultChildConfig要素がない)場合は、リポジトリのリソース構成リストのconfiguration要素が使用されます。その情報も欠落している場合は、新規リソースのリソース構成リストは空になります。
                  
特定リソースの構成リストを表示する場合は、ビューRESOURCE_VIEWの列RESから要素/Resource/RCListを抽出するか、PL/SQLプロシージャDBMS_RESCONFIG.getResConfigPathを使用します。リポジトリの構成リストをまとめて表示する場合は、PL/SQLプロシージャDBMS_RESCONFIG.getRepositoryResConfigPathを使用します。リポジトリ全体の構成リストを変更するには、ロールXDBADMINが必要です。
                  
親トピック: Oracle XML DBリポジトリの構成
22.2 リソースの構成
Oracle XML DBリポジトリ・リソースの構成には、構成ファイルを作成し、そのファイルを構成リソースとしてリポジトリに追加し、および構成リソースをそれが構成するリソースまたはリポジトリ全体にマッピングすることが含まれます。
個々のリソースまたはリポジトリ全体(すべてのリソース)を構成するには、次のステップに従ってください。
- 構成を定義するリソース構成ファイルを作成します。このXMLファイルは、XML Schema 
XDBResConfig.xsdに準拠している必要があります。 - リソース構成ファイルを、それ自体をリソースである構成リソースとしてリポジトリに追加します。これを行うには、PL/SQL関数
DBMS_XDB_REPOS.createResourceを使用できます。 - この構成リソースを、この構成リソースが構成するリソースに、あるいはすべてのリソースに適用される場合はリポジトリにマップします。PL/SQLプロシージャ
DBMS_RESCONFIG.addResConfigまたはDBMS_RESCONFIG.appendResConfigを使用して、個々のリソースをマップします。DBMS_RESCONFIG.addRepositoryResConfigを使用して、リポジトリをまとめてマップします。 - コミットします。
 
注意:
リソース構成ファイルを使用する操作を実行する前に、COMMIT操作を行う必要があります。それまでは、構成ファイルを使用するたびに、「ORA-22881 REFの参照先がありません」エラーが発生します。
                        
PL/SQLパッケージDBMS_RESCONFIGには、構成リストからの構成の削除、構成リスト内の構成へのパスのリストの取得などを行う、その他のプロシージャが記述されています。
                     
注意:
他のリソースにより参照されているリソース構成ファイルを削除する場合、構成されているリソースにアクセスしようとするたびに「REFの参照先がありません」エラーが発生します。
                        
関連項目:
- 
                           
単純なリソース構成ファイルの例は、例22-1を参照してください。
 - 
                           
完全な構成リソースの例は、リポジトリ・イベントの構成を参照してください。
 - 
                           
DBMS_RESCONFIGパッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。 
親トピック: Oracle XML DBリポジトリの構成
22.3 共通の構成パラメータ
共通で使用される構成パラメータ、つまり構成ファイル内の要素について説明します。
特定の構成の型に固有のパラメータについては、他の項で説明します。
- 構成要素ResConfig
リソース構成ファイルの最上位要素はResConfigです。これを使用すると、リソース構成ファイルを無効または有効にできます。 - 構成要素defaultChildConfigおよびconfiguration
構成要素defaultChildConfigはフォルダにのみ適用されます。これには、フォルダ内のすべての子リソースに適用する構成情報が保持されています。要素defaultChildConfigには1つ以上のconfiguration子要素があり、それぞれにフォルダ内のリソースに可能な構成が定義されています。 - 構成要素applicationData
要素applicationDataはアプリケーション固有のデータを格納します。通常、アプリケーションは、ハンドラが動作している場合はこのデータをイベント・ハンドラに渡します。要素applicationData内で必要な任意のXMLコンテンツを使用できます。 
親トピック: Oracle XML DBリポジトリの構成
22.3.1 構成要素ResConfig
リソース構成ファイルの最上位要素はResConfigです。これを使用すると、リソース構成ファイルを無効または有効にできます。
                     
要素ResConfigには、namespace属性およびschemaLocation属性の他に、オプションとしてenable属性を含めることができます。属性の値をenableからfalseに設定し、リソース構成ファイルを無効にします。これにより、そのファイルにマップされたリソースには影響がなくなります。これは、アプリケーションの無効化やデバッグには便利です。enableのデフォルト値はtrueで、属性が存在しない場合に使用されます。 
                     
親トピック: 共通の構成パラメータ
22.3.2 構成要素defaultChildConfigおよびconfiguration
構成要素defaultChildConfigはフォルダにのみ適用されます。これには、フォルダ内のすべての子リソースに適用する構成情報が保持されています。要素defaultChildConfigには1つ以上のconfiguration子要素があり、それぞれにフォルダ内のリソースに可能な構成が定義されています。
                     
configuration要素には、次の子要素があります。
                     
- 
                           
pre-condition(オプション): この要素はpath要素(次を参照)で識別されたリソース構成がデフォルト構成として使用可能になるために満たす必要がある条件を指定します。要素pre-conditionがない場合、pathでターゲットにされているリソース構成ファイルはフォルダ内のすべてのリソースに適用されます。つまり、前提条件はTRUEとみなされます。pre-condition要素には、オプションのexistsNode子要素があります。existsNode要素には、必須のXPath子要素とオプションのnamespace子要素があり、どちらも文字列です。これらの要素は、リソースの有無を確認する場合に使用するXPath 1.0式と名前空間をそれぞれ定義します。そのリソースが存在する場合は前提条件が満たされるため、pathで識別されるリソース構成ファイルは、フォルダ内のすべての子リソースのデフォルト・リソース構成ファイルとして使用されます。XPath要素の第1コンポーネントはResourceである必要があります。注意:
要素
XPathの複雑なXPath式は、パフォーマンスに悪影響を与える可能性があります。複数の
configuration要素の前提条件がTRUEの場合、関連付けられたpath要素により識別される各リソース構成ファイルは、フォルダ内のすべてのリソースに適用されます。 - 
                           
path(必須): この要素は、要素pre-conditionで指定された前提条件を満たしている場合は必ず、新規リソースのデフォルトの構成として使用されるリソース構成ファイルへの絶対リポジトリ・パスを指定します。 
通常、path要素の値は、path要素を含むファイルである現在のリソース構成ファイルへのパスです。例22-1は、リソース構成ファイルがリポジトリのパス/cm/app_rc.xmlにあるという前提でパスを示しています。この例では、コンテンツの型がxmlのResourceノードが存在することが前提条件です。前提条件を満たした場合、例22-1のリソース構成ファイルは、構成ファイル(/cm/app_rc.xml)と同じフォルダにあるすべてのリソースに適用されます。
                     
例22-1リソース構成ファイル
<ResConfig xmlns="http://xmlns.oracle.com/xdb/XDBResConfig.xsd"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://xmlns.oracle.com/xdb/XDBResConfig.xsd
                               http://xmlns.oracle.com/xdb/XDBResConfig.xsd">
  <defaultChildConfig>
    <configuration>
      <pre-condition>
        <existsNode>
          <XPath>/Resource[ContentType="xml"]</XPath>
        </existsNode>
      </pre-condition>
      <path>/cm/app_rc.xml<path>
    </configuration>
  </defaultChildConfig>
</ResConfig>親トピック: 共通の構成パラメータ
22.3.3 構成要素applicationData
要素applicationDataはアプリケーション固有のデータを格納します。通常、アプリケーションは、ハンドラが動作している場合はこのデータをイベント・ハンドラに渡します。要素applicationData内で必要な任意のXMLコンテンツを使用できます。 
                     
イベント・ハンドラは、PL/SQL関数DBMS_XEVENT.getApplicationDataまたはJava関数oracle.xdb.XMLType.getApplicationDataを使用して、イベント・リスナーのリソース構成ファイルのapplicationDataにあるデータにアクセスします。
                     
例22-2に、Oracle Spatial and Graphアプリケーションで使用するapplicationData要素を示します。
                     
関連項目:
- 
                              
PL/SQLファンクション
DBMS_XEVENT.getApplicationDataの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。 - 
                              
Java関数
oracle.xdb.XMLType.getApplicationDataの詳細は、Oracle Database XML Java APIリファレンスのXDBRepositoryEventクラスを参照してください。 - 
                              
イベント・リスナー用のリソース構成ファイルの例は、例30-1を参照してください。
 
例22-2 applicationData要素
<applicationData>
  <spatial:data xmlns:spatial="http://oracle/cartridge/spatial.xsd">
    <spatial:xpos>5</spatial:xpos>
    <spatial:ypos>10</spatial:ypos>
  </spatial:data>
</applicationData>親トピック: 共通の構成パラメータ