スキーマキャッシュ機能を利用すると,妥当性検証のためのパース時間を短縮することができます。ただし,メモリ使用量が増加したり,ディスクキャッシュ使用時に期待するほど効果が出ないなどの問題が発生するおそれがあります。
ここでは,これらの問題を回避し,最適なスキーマキャッシュを使用するための方法について説明します。
スキーマ文書はXMLで記述されています。妥当性検証に先立ってパースされ,内部的なgrammarオブジェクトに変換されます。キャッシュを使用すると,スキーマ文書からgrammarオブジェクトを構築する処理を省略できます。妥当性検証のためのパースには,次の時間が掛かります。
インスタンス文書の検証時間+スキーマ文書からgrammarオブジェクトを構築する時間
grammarオブジェクトを構築する時間はキャッシュにより省略できるため,次の条件では,1.に示す条件の方がスキーマキャッシュの効果が大きくなります。
スキーマキャッシュ機能を使用する場合,事前にスキーマ文書からgrammarオブジェクトを構築しているため,検証時にgrammarオブジェクトを構築する時間を省略できます。
ただし,メモリキャッシュを使用する場合とディスクキャッシュを使用する場合,妥当性検証のためのパースには次に示す時間が掛かります。
メモリキャッシュを使用する場合,キャッシュ構築後はメモリ上にキャッシュが残ります。そのため,リソースの許す範囲で,メモリ使用量を調整してください。使用頻度の高いスキーマ文書を選択して,優先的にメモリキャッシュを利用すると効果的です。