カタログ・サポートの有効化
プロセッサでの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_CATALOG
がtrue
に設定されており、特定のプロセッサに対するカタログ・サポートを無効化する場合は、プロセッサの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
エントリを使用することをお薦めします。