5.1.9 XMLエンティティ・リゾルバー
すべてのXMLサービスにはエンティティ・リゾルバーがあり、パーサーはこれを使用してドキュメントの外部にあるリソースを見つけることができます。
エンティティ・リゾルバーを使用する場合、ローカル・コンピュータ上にある外部リソース・ファイルをキャッシュできるため、リモートのリソース・ファイルを取得する際にサービスでHTTPプロトコルを使用する必要はありません。この技術は、サービスがリモート・サーバーに接続できないプロキシー/ファイアウォールの問題を処理する場合も使用できます。
xml.apache.org/commons/components/resolver/resolver-article.htmlを参照してください。
リソース参照階層は、dtdファイルとスキーマ・ファイルの場所を見つける場合に使用されます。
systemid.{url}propertyが存在する場合は、これが使用されます。
ファイル(http以外)リソースの場合、以下のステップが行われます。
「schema.dir」プロパティが存在する場合、このディレクトリの値とurlリソースのファイル名を使用して、ファイルの場所を見つけます。
「schema.dir」プロパティが存在せず、urlリソースのパスが存在する場合、urlリソースのパスが使用されます。
「schema.dir」プロパティが存在せず、urlリソースのパスが存在しない場合、インスタンスのdtdサブディレクトリとurlリソースのファイル名が使用されます。
以下に、エンティティ・リゾルバーを使用して外部リソース「order.dtd」を探すXMLドキュメントの例を示します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Orders SYSTEM "order.dtd">
<Orders>
</Orders>
XMLサービス・プロパティのエントリーのサンプル
schema.dir=schema
systemid.file:///jsm/instance/order.dtd=dtd/order.dtd
systemid.file:///jsm/instance/shipment.xsd=dtd/shipment.xsd
systemid.http://nasdaq.com/reference/NasdaqDotCom.dtd=dtd/nasdaq.dtd
systemid.file:///C:/Program%20Files/LANSA/Integrator/JSMInstance/order.dtd=dtd/order.dtd
注:%20はブランクを表します。