ヘッダーをスキップ
Oracle XML DB開発者ガイド
11gリリース1(11.1)
E05669-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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をインストールする必要があります。


注意:

XMLTypeデータを含むデータベースのOracle XML DBをアンインストールする場合は、必ずOracleサポートにご相談ください。

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サービスが開始されます。ローカル・リスナーが起動されていない場合は、ポート番号を更新した後、リスナーを再起動します。


注意:

Real Application Cluster(RAC)のポートは、各ノード個別に構成するか、1つのノードについて構成してから他のノード上でデータベース・インスタンスを再起動する必要があります。「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください。


関連項目:

プロトコルの構成の詳細は、第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は一時表領域です。

catqm.sql xdb_password xdb_ts_name temp_ts_name

次に例を示します。

catqm.sql change_on_install SYSAUX TEMP

注意:

データベースがOracle9iリリース2(9.2.0)以上で起動されていること、およびJava仮想マシン(JVM)がインストール済であることを確認してください。

インストール後

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

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

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


関連項目:

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

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

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


関連項目:

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 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構成ファイルを使用して直接構成できます。

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


注意:

Real Application Cluster(RAC)の各ノードについて、xdbconfig.xmlを個別に更新する必要があります。1つのノード上でxdbconfig.xmlに対して行った変更は、クラスタの他のノードに自動的に伝播されません。ユーザー自身が伝播させる必要があります。次のいずれかの方法で伝播することができます。
  • 1つのノード上でxdbconfig.xmlを更新し、その後、他のすべてのノード上でデータベース・インスタンスを再起動します。

  • 各ノード上でxdbconfig.xmlを個別に更新します。


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 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 Database 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に基づくリソースと同様にアクセスできます。このConfiguration APIは、FTP、HTTP、HTTPS、WebDAV、Oracle Enterprise Manager、Java DOM API、PL/SQL DOM API、C(OCI) DOM API、Resource API for Java、Resource API for PL/SQL、Resource API for C(OCI)などを使用して、アクセスできます。

利便性を考慮して、構成アクセスにPL/SQLパッケージDBMS_XDBを使用することができます。これにより、次の関数とプロシージャが公開されます。

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

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

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

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

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

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

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

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文書を事前解析して、XML Schemaに基づくXMLTypeインスタンスを識別します。適切なxsi:schemaLocation属性またはxsi:noNamespaceSchemaLocation属性が検出された場合は、指定されたスキーマの場所を示すURLを使用して、登録済スキーマが参照されます。適切なxsi:属性が検出されない場合、そのXML文書は、XML Schemaに基づかない文書とみなされます。Oracle XML DBは、デフォルトのスキーマの場所のマッピングを構成するメカニズムを提供します。適切なxsi:属性がXML文書に指定されていない場合、デフォルトのスキーマの場所のマッピングが使用されます。Oracle XML DB構成XML Schemaであるxdbconfig.xsdの要素schemaLocation-mappingsを使用して、名前空間と要素の組合せとそのデフォルトのスキーマの場所との間のマッピングを指定できます。要素の値が空の場合、マッピングは指定した名前空間内のすべてのグローバル要素に適用されます。名前空間の値が空の場合は、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. XDB構成ファイルに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>

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

  • 名前空間 = http://www.oracle.com/exampleルート要素 = rootスキーマURL = http://www.oracle.com/example/sch.xsd

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

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

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

    <root xmlns="http://www.oracle.example2">
    
  • 名前空間 = null(NULLの名前空間)ルート要素 = specialRootスキーマ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>


脚注の凡例

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