すべてのXMLサービスにはエンティティ・リゾルバーがあり、パーサーはこれを使用してドキュメントの外部にあるリソースを見つけることができます。
エンティティ・リゾルバーを使用する場合、ローカル・コンピュータ上にある外部リソース・ファイルをキャッシュできるため、リモートのリソース・ファイルを取得する際にサービスでHTTPプロトコルを使用する必要はありません。この技術は、サービスがリモート・サーバーに接続できないプロキシー/ファイアウォールの問題を処理する場合も使用できます。
詳細については、「xml.apache.org/commons/components/resolver/resolver-article.html」を参照してください。
リソース参照階層は、dtdファイルとスキーマ・ファイルの場所を見つける場合に使用されます。
systemid.{url}propertyが存在する場合は、これが使用されます。
ファイル(http以外)リソースの場合、以下のステップが行われます。
1. 「schema.dir」プロパティが存在する場合、このディレクトリの値とurlリソースのファイル名を使用して、ファイルの場所を見つけます。
2. 「schema.dir」プロパティが存在せず、urlリソースのパスが存在する場合、urlリソースのパスが使用されます。
3. 「schema.dir」プロパティが存在せず、urlリソースのパスが存在しない場合、インスタンスのdtdサブディレクトリとurlリソースのファイル名が使用されます。
以下に、エンティティ・リゾルバーを使用して外部リソース「order.dtd」を探すXMLドキュメントの例を示します。
|
注意:%20はブランクを表します。