XMLカタログAPIの目的

XMLカタログAPIとJava XMLプロセッサには、外部リソースを管理するための、開発者およびシステム管理者向けのオプションが用意されています。

XMLカタログAPIは、外部リソースが原因で発生する問題に対処するために設計された標準の、OASIS XMLカタログv1.1の実装を提供します。

外部リソースが原因で発生する問題

XML、XSDおよびXSLのドキュメントには、Java XMLプロセッサがドキュメントを処理するために取得する必要がある、外部リソースへの参照が含まれている可能性があります。外部リソースによってアプリケーションまたはシステムに問題が発生する場合があります。カタログAPIとJava XMLプロセッサには、これらの外部リソースを管理するための、開発者およびシステム管理者向けのオプションが用意されています。

外部リソースによって、アプリケーションまたはシステムの次の領域に問題が発生する場合があります:

  • 可用性: リソースがリモートの場合、XMLプロセッサはリソースをホストするリモート・サーバーに接続できる必要があります。接続性が問題となることはまれですが、アプリケーションの安定性に影響する要因になります。接続が多すぎると、リソースを保持しているサーバーに障害が発生し、アプリケーションに影響を及ぼす可能性があります。XMLカタログAPIを使用してこの問題を解決する例は、「XMLプロセッサでのカタログの使用」を参照してください。

  • パフォーマンス。接続性が問題になることはほとんどありませんが、リモート・フェッチによってアプリケーションのパフォーマンスに問題が生じることがあります。さらに、同じシステム上に同じリソースの解決を試行するアプリケーションが複数存在する場合があり、これによってシステム・リソースに無駄が生じます。

  • セキュリティ: リモート接続を許可すると、アプリケーションで信頼されないXMLソースが処理された場合にセキュリティ・リスクが発生します。

  • 管理性: システムで多数のXMLドキュメントを処理する場合、外部参照ドキュメントが(ローカルかリモートかに関係なく)保守上の問題になる可能性があります。

外部リソースが原因で発生する問題にXMLカタログAPIで対応する方法

アプリケーション開発者は、アプリケーションのすべての外部参照のローカル・カタログを作成し、カタログAPIを使用して参照をアプリケーション用に解決します。これによって、リモート接続が回避されるだけでなく、これらのリソースの管理が容易になります。

システム管理者は、システムのローカル・カタログを確立し、そのカタログを使用するようにJava VMを構成できます。次に、システム上のすべてのアプリケーションがアプリケーションのコードを変更することなく(Java SE 9と互換性があることを想定)、同じカタログを共有します。カタログを確立するために、一部のLinuxディストリビューションに含まれるカタログなどの既存のカタログを使用できます。