Oracle Helpのファイル形式 | ![]() 目次 | ![]() 前へ |
![]() 次へ |
トピックIDとマップ・ファイル間をマップする簡単な規則をヘルプセットで使用している場合、動的マッピングによって、Oracle Helpのメモリー使用量および起動時刻を大幅に改善できます。
Oracle Helpは、OHJ 4.2.1およびOHW 2.0では、ヘルプセットの<maps>
領域にある<mapref>
サブ要素の新しいengine
属性をサポートします。engine
属性を設定することで、カスタム・エンジンを使用したマップ・ファイルの解析、およびトピックIDとファイルの間のマッピングに使用されるオブジェクトの作成ができます。実際、適切なエンジンを使用すれば、マップ・ファイルを完全に排除できます。
engine
属性はオプションです。指定しない場合、Oracle Helpはlocation
属性が<mapref>
に設定されていると判断し、マップ・ファイルはOracle Helpの旧リリースと同じ方法で解析および格納されます。
しかしOracle Helpは、トピックIDとファイルの間を調整する共通規則をサポートする、次の2つのエンジンをサポートしています。
oracle.help.engine.XMLMapFixedConventionEngine
oracle.help.engine.XMLMapConventionEngine
この2つのエンジンを使用しても、必要な動的マッピングが実行できない場合、oracle.help.engine.DataEngine
のカスタム実装を記述できます。
oracle.help.engine.XMLMapFixedConventionEngine
myfile.html
というファイル名に対して対応するトピックIDはmyfile_html
です。マップ・ファイルが、この形式による明白なトピック・マッピングの不用意に長いリストの場合、<mapref>
のengine
属性をoracle.help.engine.XMLMapFixedConventionEngine
に設定します。
OHJ 4.2.1以上またはOHW 2.0以上を使用している場合、engine
をこの値に設定することで、以前のマップ・ファイルは消去可能になります。しかし、ヘルプ・コンテンツがOracle Helpの旧リリースを使用して表示されている場合、以前のマップ・ファイルを保存しておく必要があります。そうすることで、Oracle Helpの旧リリースはトピック・マッピングの標準メカニズムを再び使用できます。
ヘルプ・システムのメモリー使用量を削減し、起動時間を短縮する必要がある場合、この新しいエンジンの使用をお薦めします。これにより、マップ・ファイルは読み込まれず、コンテンツがメモリーに格納されません。しかし、このエンジンの使用について注意事項が1つあります。
すべてのヘルプ・コンテンツ(HTMLファイル)は、ヘルプセット・ファイルと同じディレクトリに格納してください。さらに、すべてのサブヘルプセットもマスター・ヘルプセット・ファイルと同じディレクトリに格納してください。コンテンツがマスター・ヘルプセットと同じディレクトリに格納されていないとヘルプシステムによって検出できないため、サブヘルプセット用のサブディレクトリは作成できません。しかし、別のヘルプセットであれば別のディレクトリに格納できます。
oracle.help.engine.XMLMapConventionEngine
<mapref>
要素でengine
をoracle.help.engine.XMLMapConventionEngine
に設定している場合、独自のトピック名規則をマップ・ファイルに定義できます。たとえば、ヘルプセットに次の<maps>
が定義されている場合について考察します。
<maps>
<mapref location="map.xml" engine="oracle.help.engine.XMLMapConventionEngine"/>
</maps>
XMLMapConventionEngine
は、トピックIDおよびウィンドウ・タイプのマッピングを設定する場合、標準メカニズムをサポートします。しかし、新しい<topicNameConvention>
要素もサポートします。
XMLMapConventionEngine
を使用する場合、map.xml
は次のものに類似します。
<map version="1.1">
<topicNameConvention urlbase="http://www.example.org/help">
<text>beginningText</text>
<filename/>
<text>_</text>
<extension/>
<text>endingText</text>
</topicNameConvention>
</map>
<topicNameConvention>
の概念は単純です。トピックIDの構造を指定するだけです。urlBase
属性を<topicNameConvention>
に設定した場合、すべてのヘルプ・コンテンツ・ファイルはそのURLに配置されたと判断されます。すべてのトピックIDがファイル名や拡張子の一部以外の文字列で始まる場合、規則の最初で<text>
に値を指定できます。次に、ファイル名または拡張子のどちらがトピック名規則の最初に設定されるかを示すために、<filename/>
または<extension/>
のどちらかを指定する必要があります。これにより、ファイル名と拡張子を切り離す<text>
が指定できます。ファイル名または拡張子のどちらが規則の2番目に設定されるかを示すために<filename/>
または<extension/>
のどちらかが続きます。最後の<text>
は、すべてのトピックIDがファイル名や拡張子の一部以外のテキストで終わる場合に指定できます。
前述のトピック名規則に従った場合、beginningTextmyfile_htmlendingText
のトピックIDは、http://www.example.org/help/myfile.html
に配置されているファイルに関連付けされます。urlBase
属性が指定されていない場合、myfile.html
はヘルプセット・ファイルと同じディレクトリに格納されていると判断されます。
標準のトピック・マッピングおよびウィンドウ・タイプをマップ・ファイルに設定し、さらにXMLMapFixedConventionEngine
で提供されるトピック名規則を使用する場合、マップ・ファイルでtopicNameConvention
を次のように定義できます。
<map version="1.1">
<topicNameConvention>
<filename/>
<text>_</text>
<extension/>
</topicNameConvention>
<mapID etc.../>
</map>
前述の規則(およびXMLMapFixedConventionEngine
)では、ファイル名と拡張子を切り離すテキストがトピックIDに複数回出現します。たとえば、my_file_html
というトピックの場合を考察します。このエンジンでは、ファイル名と拡張子を切り離すテキストは、トピックIDに出現する「_」という文字の最後のものであると判断されます。したがって、このトピックはmy_file.html
に配置されます。
ファイルへのトピックIDの動的マッピングを使用すると、ヘルプ・システムのパフォーマンスが格段に向上します。しかし、ライブラリに多くのヘルプセットがある場合、特定のトピックを状況依存ヘルプで呼び出す際、時間がかかることがあります。
URLに何も指定されていない場合でも規則ベースのマッピング・エンジンはトピックIDにURLを返すというのが、この問題の根本的な理由です。このため、状況依存ヘルプはライブラリの各ヘルプセットを呼び出し、エンジンによって生成されたURLが実際に指定された内容を表示するかどうかをチェックします。
最悪の場合、状況依存ヘルプを1回呼び出しただけで、ヘルプ・システムはライブラリにあるヘルプセットの分のURLに接続しようとします。しかし、Oracle Helpではこの問題を解決する簡単な対応策が用意されています。<mapref>
要素でengine
を設定している場合、engineParams
属性も設定します。
XMLMapConventionEngine
またはXMLMapFixedConventionEngine
を設定している場合、ヘルプセットにある全トピックの接頭辞が空白文字で区切られるようにengineParams
を設定します。たとえば、ヘルプセットのすべてのトピックがoh
またはhelp
のどちらかで始まる場合、maprefは次のようになります。
<mapref engine="XMLMap..." engineParams="oh help">
engineParams
を規則ベースのエンジンのいずれかに設定することで、ヘルプセットは有効な接頭辞で始まるトピックのみ表示します(それにより何も指定されていないURLへの接続を回避できます)。engineParams
を設定しないと、ヘルプ・システムは壊れませんがパフォーマンスは最適になりません。
Copyright © 1996, 2004, Oracle. All rights reserved.