3.3.3 スキーマキャッシュの構築

スキーマキャッシュ機能を使用するためには,あらかじめキャッシュ対象となるスキーマ文書を決めて,スキーマキャッシュを構築する必要があります。そのため,次のプロパティファイルを適切に設定してください。

上記のファイルはJavaのプロパティファイルに相当するため,基本的な構文規則はJavaのプロパティファイルの規則に従ってください。なお,プロパティファイルの構文規則の詳細については,java.util.PropertiesクラスのJavadocを参照してください。

プロパティファイルの詳細について説明します。

<この項の構成>
(1) スキーマ定義ファイル
(2) J2EEサーバのユーザ定義ファイル

(1) スキーマ定義ファイル

スキーマ定義ファイルには,次の項目を定義できます。

スキーマ定義ファイルのファイル名,および格納場所は任意です。

キャッシュの対象となるのは,次のスキーマ文書です。

スキーマ定義ファイルに記述できるプロパティを次に示します。次に示す以外のプロパティを指定した場合,無視されます。

表3-2 スキーマ定義ファイルに記述できるプロパティ

項番プロパティ名指定値
1schema_pathスキーマ文書が存在するディレクトリを示す絶対パスを指定します。
2diskcache_pathディスクキャッシュを格納するディレクトリを示す絶対パスを指定します。
3schema_xxx
("xxx"の部分は1文字以上の任意の文字列)
キャッシュ対象となるスキーマ文書のファイルを示す相対パス,およびディスクキャッシュ指定子を指定します。ディスクキャッシュ指定子は省略できます。
ディスクキャッシュ指定子は,スキーマ文書の相対パスの末尾に",D"と記述してください。ディスクキャッシュ指定子が記述されたスキーマ文書のキャッシュは,ディスク上に作成されます。
ディスクキャッシュ指定子の記述がない場合,キャッシュはメモリ上に作成されます。
ファイル名とディスクキャッシュ指定子の間の連続する空白およびタブは無視されます。

それぞれのプロパティで指定するパスの区切り記号は,Windowsの場合もUNIXの場合もスラッシュ(/)です。ディレクトリ名の絶対パスの末尾のスラッシュ(/)は任意です。

同じプロパティ名が2回以上指定された場合,最後に指定されたプロパティの指定値が有効となります。

スキーマ定義ファイルの記述例を次に示します。

Windowsの場合

shema_path=C:/usr/app/xmlparser/schemafiles
diskcache_path=C:/usr/app/xmlparser
schema_01=schema/type1.xsd
schema_02=schema/type2.xsd,D

UNIXの場合

shema_path=/usr/app/xmlparser/schemafiles
diskcache_path=/usr/app/xmlparser
schema_01=schema/type1.xsd
schema_02=schema/type2.xsd,D

"schema_01=schema/type1.xsd"と指定した場合,ディスクキャッシュ指定子が記述されていないため,スキーマ文書のキャッシュはメモリ上にキャッシュされます。

"schema_02=schema/type2.xsd,D"と指定した場合,ディスクキャッシュ指定子が記述されているめ,スキーマ文書のキャッシュはディスク上にキャッシュされます。

スキーマ定義ファイル指定時の動作を次に示します。

スキーマ定義ファイルに関する注意事項については,「6.19.3 スキーマ定義ファイルに関する注意事項」を参照してください。

(2) J2EEサーバのユーザ定義ファイル

J2EEサーバのユーザ定義ファイル(usrconf.properties)は,J2EEサーバ起動時に初期化するクラスや,設定するシステムプロパティを定義するファイルです。

J2EEサーバのユーザ定義ファイルの詳細についてはマニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2. J2EEサーバで使用するファイル」を参照してください。

スキーマキャッシュ機能を使用する場合に,J2EEサーバのユーザ定義ファイルに記述するプロパティを次に示します。

表3-3 J2EEサーバのユーザ定義ファイルに記述するプロパティ

項番プロパティ名指定値
1ejbserver.application.InitTermProcessClassesJ2EE拡張コンテナの初期化・終了クラスを指定します。
スキーマキャッシュ機能では,スキーマキャッシュの構築に必要な"com.cosminexus.jaxp.impl.parsers.util.XMLGrammarCaching"を指定してください。
2com.cosminexus.jaxp.grammar_caching.preloadスキーマキャッシュ機能を使用するかどうかを指定します。"ON"または"OFF"を指定できます。デフォルトは"OFF"です。
"ON"を設定すると,スキーマキャッシュ機能を使用できます。XMLパーサはスキーマキャッシュを使用してスキーマ検証を実施します。
"OFF"を設定すると,スキーマキャッシュ機能を使用しません。XMLパーサはスキーマキャッシュを使用しないでスキーマ検証を実施します。
なお,このプロパティは,スキーマキャッシュ機能全体を制御するプロパティです。J2EEサーバがスキーマキャッシュ機能を利用する場合,必ず"ON"を指定してください。"OFF"を指定した場合,J2EEサーバ起動後にスキーマキャッシュ機能を有効にすることはできません。
3com.cosminexus.jaxp.grammar_caching.configスキーマ定義ファイルの絶対パスを指定します。

スキーマキャッシュ機能は,次のすべての条件に該当する場合だけ,使用できます。

J2EEサーバのユーザ定義ファイルの記述例を次に示します。

# Cosminexus起動時に初期化するクラスを指定
ejbserver.application.InitTermProcessClasses=com.cosminexus.jaxp.impl.parsers.util.XMLGrammarCaching
# キャッシュ機能を使用可能にする
com.cosminexus.jaxp.grammar_caching.preload=ON
# キャッシュに保持するスキーマ文書を定義した「スキーマ定義ファイル」の絶対パス名
com.cosminexus.jaxp.grammar_caching.config=C:/usr/app/xmlparser/config.properties

J2EEサーバのユーザ定義ファイル指定時の動作を次に示します。