プライマリ・コンテンツに移動
Oracle® XML DB開発者ガイド
12cリリース1 (12.1)
B71282-04
目次へ移動
目次
索引へ移動
索引

前
次

35 Oracle XML DBの管理

Oracle XML DBの管理には、インストール、アップグレードおよび構成が含まれます。

関連項目:

XLinkおよびXIncludeで使用するためのOracle XML DBリポジトリ・リソースの構成の詳細は、「XLinkおよびXIncludeのリポジトリ・リソースの構成」を参照してください。

35.1 既存のOracle XML DBのインストールのアップグレードまたはダウングレード

Oracle Database 12c リリース1 (12.1.0.1)より前のリリースのOracle Databaseのすべてのアップグレードには、様々な考慮事項が適用されます。

  • 通常どおり、スクリプトcatproc.sqlを実行します。

  • ローリング・アップグレードを含むどのレプリケーション・メソッドでも、階層対応表のレプリケーションはサポートされていません。

  • 追加ロギングが有効になっている場合、次の操作はサポートされません。

    • INSERTでのAPPENDヒントの使用

    • XMLTypeデータのSQL*Loaderダイレクト・パス挿入

  • ローリング・アップグレード中にプライマリ・データベースで次のいずれかの操作を呼び出すと、スタンバイ・データベースでは「サポートされていない操作です。」エラーが発生します。

    • DBMS_XDB_ADMIN: すべての操作

    • DBMS_XMLSCHEMA.copyEvolve

    • DBMS_XMLSCHEMA.compileSchema

    • DBMS_XMLINDEX.dropparameter

    • DBMS_XMLINDEX.modifyparameter

    • DBMS_XMLINDEX.registerparameter

  • ACLセキュリティ: Oracle Database 11gリリース1以前のリリースでは、同じプリンシパルおよび同じ権限のACE間の競合は、先行するACEに子grantがあるかどうかに関係なく、子denyのあるACEを優先させることで解決していました。つまり、ACEの順序は関係ありませんでした。Oracle Database 11g以降では、このdeny-trumps-grantの動作も使用できますが、デフォルトの動作ではありません。

  • Oracle Database 12cリリース1 (12.1.0.1)より前は、Basicアクセス認証のみが使用可能なHTTP認証メカニズムでした。12cリリース1から、Digestアクセス認証が使用できるようになりました。データベースのアップグレードおよびダウングレードに適用される認証に関する考慮事項の詳細は、「データベースのインストール、アップグレードおよびダウングレードに関する認証の考慮事項」を参照してください。

関連項目:

  • ローリング・アップグレードの実行の詳細は、『Oracle Data Guard概要および管理』を参照してください。

  • ACE間の競合の詳細は、「ACLおよびACEの評価」を参照してください。

35.1.1 データベースのインストール、アップグレードおよびダウングレードに関する認証の考慮事項

データベースのインストール、アップグレードおよびダウングレードには、様々な認証に関する考慮事項が適用されます。

関連項目:

認証の構成方法は、「HTTPの認証メカニズムの構成および管理」を参照してください。

35.1.1.1 データベースのインストールに関する認証の考慮事項

データベースのインストールでは、デフォルトでDigest認証は有効、Basic認証は無効になっています。すべてのユーザーに、Digestベリファイアが自動的に生成されます。

35.1.1.2 データベースのアップグレードに関する認証の考慮事項

Oracle Database 12cリリース1 (12.1.0.1)より前のリリースからアップグレードすると、使用可能な認証メカニズムのリストにDigest認証が追加されます。ただし、アップグレード前にBasic認証が有効であった場合、現行の認証方法はそのままです。これは下位互換性のみのためです。

アップグレード後は、データベース管理者が速やかにBasic認証を無効にすることをお薦めします。アップグレード後にBasic認証を有効にしておく理由は、ユーザーがDigest認証をサポートしていないWebブラウザを使用して、各自のパスワードを変更できるようにするためです。

このようなアップグレードでは、新規ユーザーとアップグレード時にパスワードが変更された既存ユーザーすべてについて、Digestベリファイアが計算されます。それ以外のユーザーはDigestベリファイアを持っていません

アップグレード後、DBAは次の手順に従ってデータベース・ビューDBA_DIGEST_VERIFIERSを使用し、ユーザーごとにDigestベリファイアの有無を確認して、適切に処理できます。

  1. Oracle XML DBの構成ファイルxdbconfig.xmlで、Basic認証を使用可能な最初の認証メカニズムとして設定します。これにより、Basic認証をHTTPアクセスに使用できるようになります。
  2. Digestベリファイアを持っていないユーザーのパスワードをすべて失効させます。この問合せは、該当するユーザーを戻します。
    SELECT USERNAME FROM DBA_DIGEST_VERIFIERS
      WHERE HAS_DIGEST_VERIFIERS = 'NO' AND DIGEST_TYPE is NULL;
    
  3. 該当するすべてのユーザーのパスワードを変更したら、xdbconfig.xmlを再設定して、Digest認証を最初のまたは(できれば)唯一の使用可能な認証メカニズムとして有効にします。

35.1.1.3 データベースのダウングレードに関する認証の考慮事項

Digest認証がサポートされていないリリースにダウングレードすると、Digest認証は無効化され、認証の選択肢として使用できなくなります。

ダウングレード時に、すべてのDigest認証が消去されます。つまり具体的には、ダウングレード後にアップグレードした場合、ダウングレード前に認証されていたユーザーは、ダウングレードとそれに続くアップグレード後には、Digest認証が拒否されます。

35.1.2 Oracle XML DBの自動インストール

Oracle XML DBは、アップグレード中に自動的にインストールされます。Oracle XML DBを使用する場合は、互換性レベルが12.1.0.1以上であることを確認してください。

Oracle Database 12cリリース1 (12.1.0.1)以降にアップグレードする前に、Oracle XML DBがユーザーのデータベースにまだインストールされていなかった場合は、アップグレード時に表領域SYSAUXに自動的にインストールされます。

こうしてOracle XML DBが自動的にインストールされた場合、Oracle XML DBを使用するには、アップグレード操作後にデータベースの互換性を12.1.0.1以上に設定する必要があります。互換性が12.1.0.1より低位にある場合、Oracle XML DBの使用を試みるとエラーが発生します。

アップブレード時にOracle XML DBが自動的にインストールされ、現行の互換性レベルが12.1.0.1よりも低い場合、前のリリースにダウングレードすると、Oracle DBは自動的に削除されます。

35.1.3 ACL文書および構成ファイルの検証

アップグレード中に、既存のACL文書およびOracle XML DB構成ファイルが、XML Schemaに対して検証されます。検証に失敗した場合は、特定の対策を講じる必要があります。

アクセス制御リスト(ACL)の文書は、表XDB$ACLに格納されています。Oracle XML DBの構成ファイルxdbconfig.xmlは、表XDB$CONFIGに格納されています。Oracle Database 12cリリース1 (12.1.0.1)以降、これらの表では事後解析(バイナリXML)記憶域モデルを使用します。これは、ACL文書および構成ファイルが、各XML Schemaに対して完全に検証されることを意味します。検証は、既存のACL文書と構成ファイル、および既存の対応するXML Schemaを使用してアップグレード時に行われます。

アップグレード時にACL文書の検証に失敗した場合、その文書は表XDB$INVALID_ACLに移動されます。

アップグレード時に構成ファイルxdbconfig.xmlの検証に失敗した場合、そのファイルは表XDB$INVALID_CONFIGに格納され、デフォルトの構成ファイルが表XDB$CONFIG内でそれを置換し、データベースのXDBコンポーネントは無効としてマークされます。その後、データベースを通常モードで起動し、データベースを使用する前にXDBコンポーネントを修正する必要があります。

XDBコンポーネントを修正するには、無効なファイルを修正して有効にし、PL/SQLプロシージャRecoverUpgradeをコールします。検証後、このプロシージャは修正済のファイルを表XDB$ACLおよび表XDB$CONFIGに移動し、XDBコンポーネントを有効としてマークします。

オプションとして、パラメータuse_defaultTRUEに設定してプロシージャRecoverUpgradeをコールし、無効なファイルを破棄できます。この場合、有効なファイルは表XDB$ACLおよび表XDB$CONFIGに移動され、残った無効なファイルはすべて削除されます。無効なファイルのかわりにデフォルト・ファイルが使用されます。ACLにはデフォルトのACL文書が使用されます。構成ファイルにはデフォルトのxdbconfig.xmlが使用されます(ここではACEの順序が関係します)。

注意:

古いACLファイルまたは無効な構成ファイルが確実に必要でない場合にのみ、パラメータuse_defaultTRUEの値を使用します。これらのファイルは削除されます。

35.2 Oracle Enterprise Managerを使用したOracle XML DBの管理

Oracle Enterprise Managerを使用すると、Oracle XML DB管理タスクを実行できます。これには、Oracle XML DBの構成、XML Schema、XMLType表およびビュー、Oracle XML DBリポジトリ・リソースとそのアクセス制御リスト(ACL)の作成、検索、編集および削除、XML Schemaの登録、ファンクション索引が含まれます。

Oracle Enterprise ManagerはOracle Database付属のグラフィカル・ツールで、データベース管理タスクの容易な実行を可能にします。このツールを使用して、Oracle XML DBに関連する次のタスクを実行できます。

  • Oracle XML DBの構成。Oracle XML DBの構成ファイル、/xdbconfig.xmlのパラメータを表示または編集します。

    Oracle Enterprise Managerを使用しないOracle XML DBの構成の詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください。

  • Oracle XML DBリポジトリ・リソースおよびそれに関連するアクセス制御リスト(ACL)の検索、作成、編集および削除の取消し。

    Oracle Enterprise Managerを使用しないリソースの作成および管理の詳細は、「Oracle XML DBリポジトリ」を参照してください。

  • XMLTypeおよびビューの検索、作成、編集および削除。

  • XMLスキーマの検索、作成、登録および削除。

    Oracle Enterprise Managerを使用しないXML Schemaの操作の詳細は、「XML Schemaの格納と問合せ: 基本」を参照してください。

関連項目:

Oracle Enterprise Managerを使用した、これらのタスクの実行の詳細は、Oracle Enterprise Manager付属のオンライン・ヘルプを参照してください。

35.3 xdbconfig.xmlを使用したOracle XML DBの構成

Oracle XML DBは、Oracle XML DBリポジトリにリソースとして格納された構成ファイルの/xdbconfig.xmlを介して内部管理できます。Oracle Enterprise Managerを使用してOracle XML DBを構成するかわりに、Oracle XML DB構成ファイルを使用して直接構成できます。

構成ファイルは実行時に変更できます。構成ファイルを更新すると、このリポジトリ・リソースの新しいバージョンが作成されます。セッションが開始されると、現行のバージョンの構成ファイルがそのセッションにバインドされます。最新のバージョンにセッションをリフレッシュするように明示的にコールしないかぎり、このセッション中は、このバージョンの構成ファイルが使用されます。

35.3.1 Oracle XML DBの構成ファイルxdbconfig.xml

Oracle XML DBの構成は、Oracle XML DB構成XML Schemaであるhttp://xmlns.oracle.com/xdb/xdbconfig.xsdに準拠するOracle XML DBリポジトリ・リソース/xdbconfig.xmlで定義および格納されます。Oracle XML DBを構成または再構成するには、構成ファイル/xdbconfig.xmlを更新します。xdbconfig.xmlファイルにアクセスするには、管理者権限が必要です。

構成ファイルの構造は、次の項で説明します。

関連項目:

Oracle XML DB構成XML Schemaの完全なリストは、「xdbconfig.xsd: Oracle XML DBを構成するためのXML Schema」を参照してください。

35.3.1.1 要素xdbconfig (最上位)

要素xdbconfigは、Oracle XML DB構成ファイルの最上位の要素です。

その構造は次のとおりです。

<xdbconfig> 
    <sysconfig> ... </sysconfig> 
    <userconfig> ... </userconfig> 
</xdbconfig>

要素sysconfigは、システム固有の組込みパラメータを定義します。要素userconfigを使用すると、新しいカスタム・パラメータを格納できます。

35.3.1.2 要素sysconfig (xdbconfigの子)

要素sysconfigは、xdbconfigの子です。

その構造は次のとおりです。

<sysconfig> 
    general parameters
    <protocolconfig> ... </protocolconfig> 
</sysconfig> 

要素sysconfigには、アクセス制御リスト(ACL)の最大存続期間など、すべてのOracle XML DBに適用されるいくつかの一般的なパラメータが含まれます。子要素protocolconfigには、プロトコル固有のパラメータが含まれます。

注意:

要素case-sensitive (要素sysconfigの子)は、XQueryまたは全文検索の大/小文字の区別には影響しません。そうではなく、すべてのOracle XML DBの動作に影響します。

35.3.1.3 要素userconfig (xdbconfigの子)

要素userconfigは、xdbconfigの子です。これには追加する必要のあるパラメータが含まれます。

35.3.1.4 要素protocolconfig (sysconfigの子)

要素protocolconfigは、sysconfigの子です。

その構造は次のとおりです。

<protocolconfig> 
  <common> ... </common> 
  <ftpconfig> ... </ftpconfig> 
  <httpconfig> ... </httpconfig> </protocolconfig> 

要素commonには、MIMEタイプについての情報など、すべてのプロトコルに適用されるパラメータが格納されます。FTP、HTTPおよびHTTPSプロトコルに固有のパラメータは、要素ftpconfighttpconfigにそれぞれ含まれます。

関連項目:

プロトコル構成パラメータのリストは、 プロトコルを使用したリポジトリへのアクセス表28-1表28-2および表28-3を参照してください。

35.3.1.5 要素httpconfig (protocolconfigの子)

要素httpconfigは、protocolconfigの子です。

その構造は次のとおりです。

<httpconfig>
  ...
  <webappconfig>
    ...
    <servletconfig>
      ...
      <servlet-list>
        <servlet> ... </servlet>
        ...
      </servlet-list>
    </servletconfig>
  </webappconfig>
  ...
  <plsql> ... </plsql>
</httpconfig>

要素httpconfigには、次の子要素、およびその他の子要素が含まれます。

  • webappconfig – Webベースのアプリケーションの構成に使用します。これには、アイコン名、アプリケーションの表示名およびサーブレットのリストなど、Webベースのアプリケーション固有のパラメータが含まれます。

    要素servletconfigは、サーブレットの定義に使用されるwebappconfigの子です。子要素servletを持つ子要素servlet-listを含んでいます(「要素servlet (httpconfigの子孫)」を参照)。

  • plsql脚注1 - 埋込みPL/SQLゲートウェイを構成する際、グローバル構成パラメータを定義するために使用されます。各グローバル・パラメータは、plsqlの子要素を使用して定義されます。要素名は、グローバル・パラメータ名と同じです。要素のコンテンツは、パラメータ値と同じです。

    埋込みPL/SQLゲートウェイの構成方法としては、xdbconfig.xmlファイルを編集するのではなく、PL/SQLパッケージDBMS_EPGのプロシージャを使用する方法をお薦めします。

関連項目:

  • プロトコル構成パラメータのリストは、 プロトコルを使用したリポジトリへのアクセス表28-1表28-2および表28-3を参照してください。

  • 埋込みPL/SQLゲートウェイの構成と使用方法の詳細は、『Oracle Database開発ガイド』を参照してください。

  • mod_plsqlの詳細と、PL/SQLゲートウェイの使用に関する概念的な情報は、『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』を参照してください。

  • DBMS_EPGパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

35.3.1.6 要素servlet (httpconfigの子孫)

要素servletは、要素httpconfigの子孫です。Javaサーブレットおよび埋込みPL/SQLゲートウェイ・サーブレットなど、サーブレットの構成に使用します。

「要素httpconfig (protocolconfigの子)」を参照してください。

注意:

次のサーブレットは、ファイルxdbconfig.xmlに事前構成済です。これらは削除しないでください。

  • ORSServlet

  • EMExpressServlet

servlet脚注1の子であるオプションの要素plsqlは、埋込みPL/SQLゲートウェイ・サーブレットを構成します。ただし、埋込みゲートウェイの構成方法としては、xdbconfig.xmlファイルを編集するのではなく、PL/SQLパッケージDBMS_EPGのプロシージャを使用する方法をお薦めします

要素plsqlは、埋込みゲートウェイの構成に必要な、埋込みPL/SQL DAD属性脚注2ごとに子要素を持っています。これらの子はすべてオプションです。要素名はDAD属性名と同じです。要素のコンテンツは、DAD属性値と同じです。

関連項目:

  • Javaサーブレットの構成の詳細は、「JavaでのOracle XML DBアプリケーションの作成方法」を参照してください。

  • 埋込みPL/SQLゲートウェイの構成と使用方法の詳細は、『Oracle Database開発ガイド』を参照してください。

  • Oracle Application Expressの詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』を参照してください。

  • DBMS_EPGパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

35.3.1.7 Oracle XML DBの構成ファイルの例

Oracle XML DBの構成ファイルの例を示します。

例35-1 Oracle XML DBの構成ファイル

<xdbconfig xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdbconfig.xsd 
                                    http://xmlns.oracle.com/xdb/xdbconfig.xsd">
   <sysconfig>
      <acl-max-age>900</acl-max-age>
      <acl-cache-size>32</acl-cache-size> 
      <invalid-pathname-chars>,</invalid-pathname-chars>
      <case-sensitive>true</case-sensitive>       
      <call-timeout>300</call-timeout>
      <max-link-queue>65536</max-link-queue> 
      <max-session-use>100</max-session-use>
      <persistent-sessions>false</persistent-sessions> 
      <default-lock-timeout>3600</default-lock-timeout>
      <xdbcore-logfile-path>/sys/log/xdblog.xml</xdbcore-logfile-path>
      <xdbcore-log-level>0</xdbcore-log-level>
      <resource-view-cache-size>1048576</resource-view-cache-size> 
    
      <protocolconfig> 
          <common>
             <extension-mappings>
                <mime-mappings>
                  <mime-mapping>
                    <extension>au</extension>
                    <mime-type>audio/basic</mime-type>
                  </mime-mapping>
                  <mime-mapping>
                    <extension>avi</extension>
                    <mime-type>video/x-msvideo</mime-type>
                  </mime-mapping>
                  <mime-mapping>
                    <extension>bin</extension>
                    <mime-type>application/octet-stream</mime-type>
                  </mime-mapping>
                </mime-mappings> 

                <lang-mappings>
                  <lang-mapping>
                    <extension>en</extension>
                    <lang>english</lang>
                  </lang-mapping>
                </lang-mappings>

                <charset-mappings>
                </charset-mappings>

                <encoding-mappings>
                  <encoding-mapping>
                    <extension>gzip</extension>
                    <encoding>zip file</encoding>      
                  </encoding-mapping>
                  <encoding-mapping>
                    <extension>tar</extension>
                    <encoding>tar file</encoding>        
                  </encoding-mapping>
                </encoding-mappings>
             </extension-mappings>

             <session-pool-size>50</session-pool-size>
             <session-timeout>6000</session-timeout>
          </common>

          <ftpconfig>
            <ftp-port>2100</ftp-port>
            <ftp-listener>local_listener</ftp-listener>
            <ftp-protocol>tcp</ftp-protocol>
            <logfile-path>/sys/log/ftplog.xml</logfile-path>
            <log-level>0</log-level>
            <session-timeout>6000</session-timeout>
            <buffer-size>8192</buffer-size> 
          </ftpconfig>

          <httpconfig>
            <http-port>8080</http-port>
            <http-listener>local_listener</http-listener>
            <http-protocol>tcp</http-protocol>
            <max-http-headers>64</max-http-headers> 
            <session-timeout>6000</session-timeout>
            <server-name>XDB HTTP Server</server-name>
            <max-header-size>16384</max-header-size>
            <max-request-body>2000000000</max-request-body>
            <logfile-path>/sys/log/httplog.xml</logfile-path>
            <log-level>0</log-level>    
            <servlet-realm>Basic realm="XDB"</servlet-realm>
            <webappconfig>
              <welcome-file-list>
                <welcome-file>index.html</welcome-file>
                <welcome-file>index.htm</welcome-file>
              </welcome-file-list>
              <error-pages>
              </error-pages>
              <servletconfig> 
                <servlet-mappings>
                  <servlet-mapping>
                    <servlet-pattern>/oradb/*</servlet-pattern>
                    <servlet-name>DBURIServlet</servlet-name>
                  </servlet-mapping>
                </servlet-mappings>
                               
                <servlet-list>
                  <servlet>
                    <servlet-name>DBURIServlet</servlet-name>
                    <display-name>DBURI</display-name>
                    <servlet-language>C</servlet-language>
                    <description>Servlet for accessing DBURIs</description>
                    <security-role-ref>
                      <role-name>authenticatedUser</role-name>
                      <role-link>authenticatedUser</role-link>
                    </security-role-ref>
                  </servlet>
                </servlet-list>
              </servletconfig>
            </webappconfig>
          </httpconfig> 
      </protocolconfig>
    <xdbcore-xobmem-bound>1024</xdbcore-xobmem-bound> 
    <xdbcore-loadableunit-size>16</xdbcore-loadableunit-size> 
   </sysconfig>
</xdbconfig>

35.3.1.8 Oracle XML DB Configuration API

Oracle XML DBの構成ファイルxdbconfig.xmlには、他のXML Schemaに基づくリソースと同様にアクセスできます。FTP、HTTP(S)、WebDAV、Oracle Enterprise Managerまたはあらゆるリソースおよびドキュメント・オブジェクト・モデル(DOM) API for Java、PL/SQLまたはC (OCI)を使用してアクセスできます。

便宜上、構成へのアクセスには、PL/SQLパッケージDBMS_XDB_CONFIGを使用できます。これにより次の関数およびプロシージャが公開されます。

  • cfg_get - 現在のセッションの構成情報を表示します。

  • cfg_refresh - 現在の構成ファイルを使用して、セッション構成情報をリフレッシュします。典型的なcfg_refreshの使用例には、次のものがあります。

    • 構成の変更後、セッションで最新バージョンの構成情報を取得する必要がある場合。

    • セッションの実行が長時間におよび、同時セッションによって構成が変更され、現行のセッションで最新バージョンの構成情報を取得する必要がある場合。

  • cfg_update - 構成ファイルを書き込み、構成情報を更新します。COMMITが実行されます。

例35-2では、構成ファイル内のftp-portおよびhttp-portパラメータを更新します。

多くのパラメータを更新する場合、FTP、HTTP、HTTPSまたはOracle Enterprise Managerを使用すると、より簡単に構成を更新できます。

関連項目:

例35-2 CFG_UPDATEおよびCFG_GETを使用した構成ファイルの更新

DECLARE
  v_cfg XMLType;
BEGIN
  SELECT XMLQuery('declare default element namespace
                   "http://xmlns.oracle.com/xdb/xdbconfig.xsd";
                   copy $i := $cfg 
                   modify for $j in $i/xdbconfig
                   return (replace value of node $j/descendant::ftp-port with
                             "2121",
                           replace value of node $j/descendant::http-port with
                             "19090")
                   return $i'
                  PASSING DBMS_XDB_CONFIG.cfg_get() AS "cfg"
                  RETURNING CONTENT)
    INTO v_cfg FROM DUAL; 
  DBMS_XDB_CONFIG.cfg_update(v_cfg);
END;
/ 

35.3.1.9 デフォルトの名前空間からスキーマの場所へのマッピングの構成

Oracle XML DBは、デフォルトのXML Schemaの場所のマッピングを構成するメカニズムを提供します。

Oracle XML DBでは、入力XML文書を事前解析して、XML Schemaに基づくXMLTypeインスタンスを識別します。適切なxsi:schemaLocationまたはxsi:noNamespaceSchemaLocation属性が検出された場合は、指定されたスキーマの場所を示すURLを使用して、登録済スキーマが参照されます。

適切なxsi:属性が見つからない場合、XML文書はスキーマに基づかないとみなされます。Oracle XML DBは、デフォルトのスキーマの場所のマッピングを構成するメカニズムを提供します。適切なxsi:属性がXML文書に指定されていない場合、デフォルトのスキーマの場所のマッピングが使用されます。

Oracle XML DB構成XML Schemaであるxdbconfig.xsdの要素schemaLocation-mappingsを使用して、(namespace, element)の組合せとデフォルトのスキーマの場所との間のマッピングを指定できます。elementの値が空の場合、マッピングは指定した名前空間内のすべてのグローバル要素に適用されます。namespaceの値が空の場合、NULLの名前空間に対応します。

要素schemaLocation-mappingsの定義は、次のとおりです。

 <element name="schemaLocation-mappings"
          type="xdbc:schemaLocation-mapping-type" minOccurs="0"/> 
 <complexType name="schemaLocation-mapping-type"><sequence>
      <element name="schemaLocation-mapping"
               minOccurs="0" maxOccurs="unbounded">
      <complexType><sequence>
        <element name="namespace" type="string"/>
        <element name="element" type="string"/>
        <element name="schemaURL" type="string"/>
      </sequence></complexType>
      </element></sequence> 
 </complexType> 

使用されるスキーマの場所は、Oracle XML DB構成ファイル内の使用される名前空間と文書のルート要素のマッピングによって異なります。たとえば、文書にスキーマの場所を示す適切なxsi:属性がないと想定します。名前空間Nに文書のルート要素Rがあると仮定します。デフォルトのスキーマの場所を識別するアルゴリズムは次のようになります。

  1. Oracle XML DB構成ファイルにNおよびRのマッピングが指定されている場合は、対応するスキーマの場所が使用されます。

  2. 構成ファイルにNのマッピングが指定されていて、Rのマッピングが指定されていない場合、Nのスキーマの場所が使用されます。

  3. ドキュメント・ルートRにいずれの名前空間も指定されていない場合は、Rのスキーマの場所が使用されます。

たとえば、Oracle XML DB構成ファイルに次のマッピングが含まれているとします。

      <schemaLocation-mappings>
         <schemaLocation-mapping>
            <namespace>http://www.oracle.com/example</namespace>
            <element>root</element>
            <schemaURL>http://www.oracle.com/example/sch.xsd</schemaURL>
         </schemaLocation-mapping>
         <schemaLocation-mapping>
            <namespace>http://www.oracle.com/example2</namespace>
            <element></element>
            <schemaURL>http://www.oracle.com/example2/sch.xsd</schemaURL>
         </schemaLocation-mapping>
         <schemaLocation-mapping>
           <namespace></namespace>
           <element>specialRoot</element>
           <schemaURL>http://www.oracle.com/example3/sch.xsd</schemaURL>
         </schemaLocation-mapping>
      </schemaLocation-mappings>
 

次のスキーマの場所が使用されます。

  • ルート要素 = root

    • 名前空間 = http://www.oracle.com/example

    • スキーマURL = http://www.oracle.com/example/sch.xsd

    このマッピングは、インスタンス・ドキュメントによる指定が次の場合に使用されます。

    <root xmlns="http://www.oracle.com/example">
    
  • ルート要素 = null (名前空間内の任意のグローバル要素)

    • 名前空間 = http://www.oracle.com/example2

    • スキーマURL = http://www.oracle.com/example2/sch.xsd

    このマッピングは、インスタンス・ドキュメントによる指定が次の場合に使用されます。

    <root xmlns="http://www.oracle.example2">
    
  • ルート要素 = specialRoot

    • 名前空間 = null (NULLの名前空間)

    • スキーマURL = http://www.oracle.com/example3/sch.xsd

    このマッピングは、インスタンス・ドキュメントによる指定が次の場合に使用されます。

    <specialRoot>

注意:

この機能はXMLがサーバー上で解析される場合にサーバー側でのみ使用できます。XMLがクライアント側で解析される場合は、適切なxsi:属性も必要になります。

35.3.1.10 XMLファイル拡張子の構成

Oracle XML DBリポジトリは、特定のファイルをそのファイル拡張子に基づいてXML文書として処理します。このようなファイルがリポジトリに挿入されると、Oracle XML DBはこれらを事前解析し、XML Schemaの場所を識別(またはデフォルトのマッピングがある場合はそれを使用)して、文書を適切なデフォルト表に挿入します。

デフォルトでは、xmlxsdxslxltの拡張子がXMLファイル拡張子とみなされます。さらに、Oracle XML DBは、各アプリケーションに対して、その他のファイル拡張子をXMLファイル拡張子として指定できるメカニズムを提供します。xml-extensions要素は、構成スキーマのhttp://xmlns.oracle.com/xdb/xdbconfig.xsdで次のように定義されます。

 <element name="xml-extensions"
          type="xdbc:xml-extension-type" minOccurs="0"/>
 
 <complexType name="xml-extension-type"><sequence>
      <element name="extension" type="xdbc:exttype"
               minOccurs="0" maxOccurs="unbounded">
      </element></sequence> 
  </complexType> 

たとえば、Oracle XML DB構成ファイルxdbconfig.xmlの次のフラグメントは、拡張子vsdvmlおよびsvglを持つファイルをXMLファイルとして処理することを指定しています。

 <xml-extensions>
   <extension>vsd</extension>
   <extension>vml</extension>
   <extension>svgl</extension>
 </xml-extensions>

35.4 Oracle XML DBとデータベース統合

プラガブル・データベースごとに、独自のOracle XML DBリポジトリと独自のOracle XML DB構成ファイルxdbconfig.xmlがあります。

マルチテナント・コンテナ・データベース(CDB)は、0(ゼロ)個以上のプラガブル・データベース(PDB)、ルートおよびシードPDB(PDBを作成するためのテンプレート)で構成されます。1つのPDBは、一度に1つのCDBにのみ関連付けることができます。ユーザーおよびアプリケーションは、1つのPDBを個別のデータベースとみなします。アプリケーションは常に単一のPDBと通信します。問合せおよびディクショナリ・ビューは、PDBに対してローカルです。PDBごとに個別のOracle XML DBリポジトリと固有のOracle XML DB構成ファイルxdbconfig.xmlを保持しています。

CDB(CDB$ROOT)のルートには、ユーザー・データは格納されません。ただし、固有の構成ファイルxdbconfig.xmlは保持しています。

CDBのルート構成ファイルには特定のパラメータのみが含まれ、これらのパラメータはルート構成ファイルからのみ使用されます。これらのパラメータが、CDBに含まれているPDBの構成ファイルにも存在する場合は無視され、ルート構成ファイル内の対応するパラメータが優先されます。

ルートから使用する(PDBからは無視される)構成パラメータを次に示します。

  • acl-cache-size

  • acl-max-age

  • resource-view-cache-size

  • xdbcore-loadableunit-size

  • xdbcore-xobmem-bound

パラメータxdbcore-loadableunit-sizeおよびxdbcore-xobmem-boundはプロセス固有です。それ以外はSGA構成パラメータです。

データベース・スキーマ(ユーザー・アカウント)XDBは共通ユーザーであり、ルートおよび任意のPDBのどちらに対しても接続および操作を実行できます。

注意:

どのような場合でも、データベース・スキーマXDBは絶対にロック解除しないことをお薦めします。

関連項目:

35.5 パッケージDBMS_XDB_ADMIN

PL/SQLパッケージDBMS_XDB_ADMINには、Oracle XML DBおよびOracle XML DBリポジトリを管理および構成するためのサブプログラムが含まれています。

表35-1では、これらのサブプログラムについて説明します。

表35-1 DBMS_XDB_ADMIN管理プロシージャ

ファンクションおよびプロシージャ 説明

moveXDB_tablespace

データベース・スキーマ(ユーザー・アカウント)XDBを指定した表領域に移動します。

rebuildHierarchicalIndex

階層リポジトリ索引を再構築します。これには、特にmoveXDB_tablespaceの起動後では、時間がかかる可能性があります。

注意:

Oracle Database 11gリリース2 (11.2.0.3)以前は、これらのプロシージャはPL/SQLパッケージDBMS_XDBに付属していました。パッケージDBMS_XDB内のこれらの2つのプロシージャはりリース11.2.0.3の時点では非推奨です。

注意:

XM操作に悪影響が生じる可能性があるため、Oracle XML DBリポジトリを含む表領域を読取り専用にすることはできません

デフォルトでは、Oracle XML DBリポジトリは表領域SYSAUXにあり、他のものにも使用されています。かわりに、リポジトリだけが使用する専用の表領域を作成することをお薦めします。

プロシージャDBMS_XDB_ADMIN.moveXDB_tablespaceを使用して、データベース・スキーマXDBをリポジトリ専用のその表領域に移動します。表領域が読取り専用でないことを確認してください。

関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』



脚注の凡例

脚注1:

埋込みPL/SQLゲートウェイの構成に使用されるplsql要素には、2つの異なるものがあります。1つはhttpconfigの子で、グローバル・パラメータを定義します。もう1つはservletの子で、DAD属性を定義します。


脚注2:

DADは、データベース・アクセス記述子の略語です。DAD属性は、このような記述子を定義するパラメータです。