ヘッダーをスキップ
Oracle® XML DB開発者ガイド
11gリリース2 (11.2)
B70200-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

34 Oracle XML DBの管理

この章では、Oracle XML DBを管理する方法について説明します。Oracle XML DBのインストール、アップグレードおよび構成に関する情報が含まれます。

この章の内容は次のとおりです。


関連項目:

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

Oracle XML DBのインストール

Database Configuration Assistant(DBCA)の有無にかかわらず、Oracle XML DBの新規インストールを実行できます。既存のインストールをアップグレードする場合、DBCAを使用せずに手動でOracle XML DBをインストールする必要があります。


注意:

Oracleサポートに問い合せることなく、XMLTypeデータを含むデータベースのOracle XML DBを削除しないでください

Database Configuration Assistantを使用したOracle XML DBのインストール

Oracle XML DBはシード・データベースの一部であり、デフォルトで、Database Configuration Assistant(DBCA)によってインストールされます。Oracle XML DBのインストールに、他の手順は必要ありません。

ただし、データベースの拡張構成を選択した場合は、Oracle XML DBリポジトリ用のSYSAUX表領域と、FTP、HTTP、HTTPS、WebDAVプロトコルのポート番号を構成できます。

デフォルトでは、DBCAによって次のタスクがインストール中に実行されます。

  • Oracle XML DBリポジトリ用の表領域SYSAUXを作成します。

  • すべてのプロトコル・アクセスを有効にします。

表領域SYSAUXには、Oracle XML DBリポジトリに格納されるデータが保持されます。次のものを使用して格納されるデータが含まれます。

  • SQL(RESOURCE_VIEWPATH_VIEWなどを使用)

  • FTP、HTTP、HTTPSおよびWebDAVなどのプロトコル

この表領域外の表にデータを格納し、このデータに対するREFをこの表領域内の表に格納することにより、Oracle XML DBリポジトリを介してこのデータにアクセスできます。


関連項目:

リポジトリへの非認証アクセス許可の詳細は、「HTTPを使用したOracle XML DBリポジトリへの匿名アクセス」を参照してください。

動的プロトコル登録によるローカル・リスナーへのFTP、HTTPおよびHTTPSサービス

Oracle XML DBのインストールでは、FTP、HTTPおよびHTTPSサービスがローカル・リスナーに動的に登録されます。lsnrctlを使用して、開始、停止および問合せを実行できます。次に例を示します。

  • 開始: lsnrctl start

  • 停止: lsnrctl stop

  • 問合せ: lsnrctl status

FTP、HTTPまたはHTTPSのポート番号の変更

FTP、HTTPおよびHTTPSのポート番号を変更するには、Oracle XML DBリポジトリの/xdbconfig.xmlファイル内の要素<ftp-port><http-port><http2-port>を更新します。

ポート番号を更新すると、動的プロトコル登録によって更新前のポート番号のFTP、HTTPまたはHTTPSサービスが自動的に停止され、ローカル・リスナーが起動されている場合は、新しいポート番号でFTP、HTTPまたはHTTPSサービスが開始されます。ローカル・リスナーが起動されていない場合は、ポート番号を更新した後、リスナーを再起動します。


関連項目:

プロトコルの構成の詳細は、第28章「プロトコルを使用したリポジトリへのアクセス」 を参照してください。

インストール後

Oracle XML DBでは、動的プロトコル登録を使用して、FTPおよびHTTPリスナー・サービスがローカル・リスナーに設定されます。Oracle XML DBプロトコルにアクセスする場合は、リスナーが起動されていることを確認してください。


注意:

リスナーが標準ポート(例: 1521)以外で起動中の場合、プロトコルを正しいリスナーに登録するには、init.oraファイルにlocal_listenerエントリを含める必要があります。これによって、正しいリスナーを指すTNSNAMEエントリが参照されます。init.oraパラメータの編集後、CREATE SPFILEを使用してSPFILEエントリを再生成する必要があります。

DBCAを使用しない手動でのOracle XML DBのインストール

Oracle XML DBは、catqm SQLスクリプトをディレクトリrdbms/adminでデータベース・ユーザーSYSとして実行することで、手動でインストールできます。スクリプトを実行する前に、データベースをインストールする必要があります。また、Oracle XML DBリポジトリに大量のデータが格納されることが予想される場合は、Oracle XML DB用に個別の表領域を作成することをお薦めします。

catqmの構文と各要素の意味を次に示します。

  • xdb_passwordはパスワードです。

  • xdb_ts_nameは、Oracle XML DBに使用する表領域です。

  • temp_ts_nameは一時表領域です。

  • secure_file_for_repoYESまたはNO(大文字)で、YESはOracle XML DBリポジトリにSecureFile LOBを使用することを意味します。

catqm.sql xdb_password xdb_ts_name temp_ts_name secure_file_for_repos

次に例を示します。

catqm.sql change_on_install SYSAUX TEMP YES

注意:

  • SecureFile LOB記憶域は、自動セグメント領域管理を使用する表領域でのみ作成できます。『Oracle Database管理者ガイド』を参照してください。

  • SecureFile LOB記憶域を使用するには、データベース互換性が11.0.0.0以上である必要があります。


インストール後

手動でのインストール後、次のタスクを実行します。

  1. init.oraファイルに次のディスパッチャ・エントリを追加します。

    dispatchers="(PROTOCOL=TCP) (SERVICE=<sid>XDB)"
    
  2. データベースおよびリスナーを再起動して、Oracle XML DBへのプロトコル・アクセスを有効にします。


関連項目:

リポジトリへの非認証アクセス許可の詳細は、「HTTPを使用したOracle XML DBリポジトリへの匿名アクセス」を参照してください。

既存のOracle XML DBのインストールのアップグレード

次の考慮事項は、Oracle Database 11gへのすべてのアップグレードに適用されます。

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

  • アップグレード後の手順として、Oracle XML DB機能が必要である場合、「DBCAを使用しない手動でのOracle XML DBのインストール」で説明されているとおりに、Oracle XML DBを手動でインストールする必要があります。

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


関連項目:

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

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

アクセス制御リスト(ACL)の文書は、表XDB$ACLに格納されています。Oracle XML DBの構成ファイルxdbconfig.xmlは、表XDB$CONFIGに格納されています。Oracle Database 11gリリース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の値を使用します。これらのファイルは削除されます。

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

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を使用しないリソースの作成および管理の詳細は、第V部「Oracle XML DBリポジトリ」を参照してください。

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

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

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

  • XPath式に基づくファンクション索引の作成。

    Oracle Enterprise Managerを使用しないファンクション索引の作成の詳細は、第6章「XMLTypeデータの索引付け」を参照してください。


関連項目:

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

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

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

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

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」を参照してください。

<xdbconfig>(最上位要素)

要素<xdbconfig>は、最上位の要素です。その構造は次のとおりです。

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

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

<sysconfig>(<xdbconfig>の子)

要素<sysconfig>は、<xdbconfig>の子です。その構造は次のとおりです。

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

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

<userconfig>(<xdbconfig>の子)

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

<protocolconfig>(<sysconfig>の子)

要素<protocolconfig>は、<sysconfig>の子です。その構造は次のとおりです。

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

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


関連項目:

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

<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章「プロトコルを使用したリポジトリへのアクセス」表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パッケージおよびタイプ・リファレンス』を参照してください。


<servlet>(<httpconfig>の子)

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

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

要素<servlet><httpconfig>の子孫です。「<httpconfig> (<protocolconfig>の子)」を参照してください。Javaサーブレットおよび埋込みPL/SQLゲートウェイ・サーブレットなど、サーブレットの構成に使用します。


関連項目:

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

  • 埋込みPL/SQLゲートウェイの構成と使用の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

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

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


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

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

例34-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>

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を使用できます。これにより次の関数およびプロシージャが公開されます。

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

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

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

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

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

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

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

DECLARE
  v_cfg XMLType;
BEGIN
  SELECT updateXML(DBMS_XDB.cfg_get(), 
                   '/xdbconfig/descendant::ftp-port/text()',
                   '2121', 
                   '/xdbconfig/descendant::http-port/text()', 
                   '19090')
    INTO v_cfg FROM DUAL;
  DBMS_XDB.cfg_update(v_cfg);
  COMMIT; 
END;
/ 

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


関連項目:

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

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

Oracle XML DBでは入力XML文書を事前解析して、スキーマに基づく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:属性も必要になります。

XMLファイル拡張子の構成

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

パッケージDBMS_XDB_ADMIN

表34-1は、Oracle XML DBおよびOracle XML DBリポジトリの管理および構成用のDBMS_XDB_ADMIN PL/SQLプロシージャを示しています。

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

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

moveXDB_tablespace

データベース・スキーマXDBを指定した表領域に移動します。

rebuildHierarchicalIndex

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



注意:

デフォルトの汎用データベースで、データベース・スキーマXDBが表領域SYSAUXにある場合、データベースの完全エクスポートを実行する前に、DBMS_XDB_ADMIN.moveXDB_tablespaceを使用する必要があります。データベースの完全エクスポートでは、SYSTEMまたはSYSAUX表領域からはデータはエクスポートされません。


注意:

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


関連項目:

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



脚注の凡例

脚注1: 埋込みPL/SQLゲートウェイの構成に使用される<plsql>要素には、2つの異なるものがあります。1つは<httpconfig>の子で、グローバル・パラメータを定義します。もう1つは<servlet>の子で、DAD属性を定義します。
脚注 2:  DADは、データベース・アクセス記述子の略語です。DAD属性は、このような記述子を定義するパラメータです。