カタログ・サポートの有効化

プロセッサでのXMLカタログ機能のサポートを有効化するには、USE_CATALOG機能がtrueに設定されており、少なくとも1つのカタログ・エントリ・ファイルが指定されている必要があります。

USE_CATALOG

Java XMLプロセッサによって、XMLカタログ機能がUSE_CATALOG機能の値に基づいてサポートされるかどうかが決定されます。デフォルトでは、USE_CATALOGはすべてのJDK XMLプロセッサに対してtrueに設定されています。Java XMLはさらにカタログ・ファイルの使用可能性を確認し、USE_CATALOG機能がtrueでカタログが使用可能である場合にのみ、XMLカタログAPIの使用を試行します。

USE_CATALOG機能は、XMLカタログAPI、システム・プロパティおよびjaxp.propertiesファイルによってサポートされます。たとえば、USE_CATALOGtrueに設定されており、特定のプロセッサに対するカタログ・サポートを無効化する場合は、プロセッサのsetFeatureメソッドを使用してUSE_CATALOG機能をfalseに設定します。次のコードでは、XMLReaderオブジェクトに対して、USE_CATALOG機能が指定値のuseCatalogに設定されます。

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
XMLReader reader = spf.newSAXParser().getXMLReader();
if (setUseCatalog) {
   reader.setFeature(XMLConstants.USE_CATALOG, useCatalog); 
}

一方、環境全体でカタログをオフにする必要がある場合は、jaxp.propertiesファイルに次の行を構成します。

 javax.xml.useCatalog = false;

javax.xml.catalog.files

javax.xml.catalog.filesプロパティはXMLカタログAPIによって定義され、JDK XMLプロセッサにその他のカタログ機能とともにサポートされます。システム・プロパティまたはjaxp.propertiesファイルを使用してプロセッサにFILESプロパティを設定するだけで、解析、検証または変換プロセスでカタログ機能を使用できます。

カタログURI

カタログ・ファイル参照は、file:///users/auser/catalog/catalog.xmlのような有効なURIである必要があります。

システムまたはカタログ・ファイルのURIエントリのURI参照は、絶対または相対で指定できます。相対の場合は、カタログ・ファイルのURIまたはベースURI(指定された場合)を使用して解決されます。

システム・エントリまたはuriエントリの使用

XMLカタログAPIを直接使用する場合(例はXMLカタログAPIのインタフェースを参照)、JDK XMLプロセッサでCatalogFeaturesクラスのネイティブ・サポートを使用すると、systemエントリとuriエントリの両方が機能します。通常は、最初にsystemエントリ、次にpublicエントリが検索され、一致が見つからない場合はプロセッサによって引き続きuriエントリが検索されます。systemエントリとuriエントリの両方がサポートされるため、systemまたはuriのどちらのエントリを使用するかを選択する場合は、XML仕様の慣例に従うことをお薦めします。たとえば、DTDはsystemIdを使用して定義されるため、systemエントリを使用することをお薦めします。