ヘッダーをスキップ
Oracle Containers for J2EE構成および管理ガイド
10g(10.1.3.5.0)
B56030-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

14 OC4JへのDTDおよびXSDの登録

この章では、XMLファイル検証を実行する場合に必要な、XMLファイルの検証を実行する場合に必要な新しいエンティティ(特にXML形式のデプロイメント・ディスクリプタの定義に使用されるベンダー固有のDTDおよびXSD)をOC4J内で登録するプロセスについて説明します。この項の内容は次のとおりです。

登録するXSDの検証

OC4Jには、ファイルを読み取る際にXSDで定義されているXMLデプロイメント・ディスクリプタを検証する機能があります。この機能を有効にするには、OC4Jの起動時にoc4j.jarコマンドラインで-validateXML引数を渡します。コマンドライン・オプションの詳細は、第4章「OC4Jランタイムの構成」を参照してください。

検証には、XML文書を定義するXSDがOC4Jサーバーに登録されている必要があります。このエンティティが登録されていないと、XML検証は実行できません。

XML文書が読み取られると、パーサーは、文書に宣言されているXSDを識別する1つ以上のキーを、エンティティ・リゾルバとして知られるOC4Jコンポーネントに渡します。エンティティ・リゾルバは、登録済エンティティの場所を解決してパーサーに返し、XML文書を検証できるようにします。

エンティティの参照には、公開識別子システム識別子の2種類のキーが使用されます。どちらの識別子もXML文書に宣言されます。

エンティティ・リゾルバでエンティティを検出できるようにするには、entity-resolver-config.xmlファイルのエントリを使用して、これらの識別子のいずれかまたは両方をOC4Jに登録する必要があります。また、エンティティの場所もこのファイルに指定する必要があります。

デフォルトでは、entity-resolver-config.xmlには標準J2EE XSDの他、すべてのOC4J固有のXSDの登録エントリがすでにあります。このため、J2EE以外またはOC4J以外のエンティティに対するエントリの追加のみが必要となります。

DTDまたはXSDの登録

DTDまたはXSDをOC4Jに登録するには、entity-resolver-config.xmlファイルに追加する必要があります。このファイルは、OC4Jホスト・マシンのORACLE_HOME/j2ee/instance/configディレクトリにあります。

各エンティティは、<entity>要素内に宣言されます。この要素には次のサブ要素があります。

次の<entity>要素は、acme-web.dtdをOC4Jに登録します。XML文書内の<!DOCTYPE>要素に宣言されている公開識別子とシステム識別子はいずれも登録されます。

<entity>
  <description>acme-web-2_0.dtd</description>
  <public-id>-//Acme//Acme web Descriptor 2.0//EN</public-id>
  <system-id>http://xmlns.acme.com/dtd/acme-web-2_0.dtd</system-id>
  <location>META-INF/acme-web-2_0.dtd</location>
</entity>

次の例では、acme-application.xsdをOC4Jに登録します。システム識別子は、XML文書内のルート要素のxsi:schemaLocationまたはxsi:noNamespaceSchemaLocation属性のいずれかに宣言されています。

<entity>
  <description>acme-application-1_0.xsd</description>
  <public-id />
  <system-id>http://xmlns.acme.com/schema/acme-application-1_0.xsd</system-id>
  <location>META-INF/acme-application-1_0.xsd</location>
</entity>

注意:

OC4Jサーバーは、entity-resolver-config.xmlの変更後に再起動する必要があります。