| Feature | 説明 | プロパティ名 | システム・プロパティ[1] | 値[2] | ACtion | |
|---|---|---|---|---|---|---|
| 型 | 値 | |||||
| FILES | カタログ・ファイルを検索するURIのセミコロン区切りのリスト。 URIは絶対であり、URIスキームのURLプロトコル・ハンドラを持っている必要があります。 | javax.xml.catalog.files | javax.xml.catalog.files | String | URI | 最初のカタログを現在のカタログとして読み取り、カタログの委任(ある場合)を含む一致が現在のカタログに見つからない場合は、他のカタログをロードします。 | 
| PREFER | パブリック識別子とシステム識別子のプリファレンスを示します。 デフォルト値はpublic [3]です。 | javax.xml.catalog.prefer | 該当なし | String | system | 一致するかどうかをシステム・エントリで検索します。外部識別子が公開識別子のみを指定する場合は公開エントリを検索 | 
| public | 一致するシステム・エントリを検索します。一致するシステム・エントリがない場合は、パブリック・エントリを検索します。 | |||||
| DEFER | 委任エントリまたはnextCatalogで指定された代替カタログを含む代替カタログは、必要になるまで読み取られないことを示します。 デフォルト値はtrueです。 | javax.xml.catalog.defer [4] | javax.xml.catalog.defer | String | true | 必要に応じて代替カタログをロードします。 | 
| false | すべてのカタログ[5]を読み込みます。 | |||||
| RESOLVE | 指定したすべてのカタログを使い果たした後に一致するエントリが見つからない場合にアクションを決定します。 デフォルトはstrictです。 | javax.xml.catalog.resolve [4] | javax.xml.catalog.resolve | String | strict | 一致がない場合は、CatalogExceptionをスローします。 | 
| continue | XMLパーサーは、一致がないかのように続行できます。 | |||||
| ignore | 一致がない場合に外部参照をスキップするようXMLパーサーに指示します。 | |||||
[1] "N/A"とマークされた機能のSystemプロパティはありません。
 [2]値は、大/小文字を区別して、この表に示されているとおりにする必要があります。 指定されていない値はすべてIllegalArgumentExceptionになります。 
 
[3]カタログ仕様では、「prefer属性」の複雑なルールが定義されています。 優先はパブリックでもシステムでもかまいませんが、仕様により、システムは実際には優先オプションになります。つまり、オプションに関係なく、システム・エントリが見つかった場合は常に使用されます。 パブリック・エントリは、優先がパブリックで、システム・エントリが見つからない場合にのみ考慮されます。 したがって、prefer属性をpublic (これはデフォルトです)として設定することをお勧めします。
 [4] OASISカタログ仕様の非標準属性ですが、deferおよびresolveは、メイン・カタログのカタログ・エントリの属性として、preferと同じようにJavaカタログAPIによって認識されます。 メインのカタログ・ファイルのカタログ・エントリに指定された属性のみが使用されます。 
 
 [5]カタログ・ストア全体を共有する場合は、カタログ全体を事前ロードできるように、プロパティjavax.xml.catalog.deferをfalseに設定することが望ましい場合があります。
 
プロパティの優先順位
カタログ機能は、「JAXP構成ファイル」、システム、APIプロパティなどの様々な構成ソースから値が取得される優先度に関して、モジュール・サマリーで説明されている「プロパティの優先順位」に従います。 一般的な構成ソースに加えて、カタログ機能もカタログ・ファイル自体でサポートされ、カタログおよびグループ・エントリの属性として指定できます。 属性が指定されると、他の構成ソースよりも優先されます。 たとえば、<catalog prefer="public">のようにカタログ・ファイルにprefer属性が設定されている場合、"prefer"プロパティのその他の入力は必要ないか、無視されます。 
 CatalogFeaturesインスタンスは、次のサンプル・コードに示すように、ビルダーを使用して作成できます:
                CatalogFeatures f = CatalogFeatures.builder()
                        .with(Feature.FILES, "file:///etc/xml/catalog")
                        .with(Feature.PREFER, "public")
                        .with(Feature.DEFER, "true")
                        .with(Feature.RESOLVE, "ignore")
                        .build();
 JAXP XMLプロセッサのサポート
カタログ機能は、SAXおよびDOM (javax.xml.parsers)、StAXパーサー(javax.xml.stream)、スキーマ検証(javax.xml.validation)、XML変換(javax.xml.transform)など、JAXPプロセッサ全体でサポートされています。 前述の機能は、JAXPファクトリまたはsetPropertyまたはsetAttributeインタフェースを定義するプロセッサを介して設定できます。 たとえば、次のコード・スニペットは、javax.xml.catalog.filesプロパティを使用して、SAXパーサーのカタログ・ファイルにURIを設定します: 
 
      SAXParserFactory spf = SAXParserFactory.newInstance();
      spf.setFeature(XMLConstants.USE_CATALOG, true); [1]
      SAXParser parser = spf.newSAXParser();
      parser.setProperty(CatalogFeatures.Feature.FILES.getPropertyName(), "file:///etc/xml/catalog");
 
 [1] USE_CATALOGのデフォルト値がtrueであるため、この文は不要です。
 
 カタログに対するJAXPプロセッサのサポートは、USE_CATALOG機能と有効なCatalogfile(s)の存在によって異なります。 JAXPプロセッサは、機能がtrueで、javax.xml.catalog.filesプロパティを介して有効なCatalogfile(s)が指定されている場合にのみカタログを使用します。 USE_CATALOGがfalseに設定されているか、カタログ・ファイルが指定されていない場合、カタログは使用されません。 
 
 JAXPプロセッサはCatalogFeaturesのデフォルト設定を観察します。 たとえば、javax.xml.catalog.resolveプロパティのデフォルト値は厳密であるため、一致するエントリが見つからない場合、プロセッサはデフォルトで例外を報告します。 
 
JAXPプロセッサは、ユーザー指定のカスタム・リゾルバを優先します。 そのようなリゾルバが登録されている場合は、CatalogResolver上で使用されます。 ただし、nullを返す場合、プロセッサはCatalogResolverを使用して解決を続行します。 空のソースを返す場合、CatalogResolverは試行しません。
カタログ・サポートは、リゾルバをサポートするJAXPライブラリ内のプロセスで使用できます。 次の表に、このようなすべてのプロセスを示します。
カタログ・サポートを持つプロセス
| Process | カタログ・エントリ型 | 例 | 
|---|---|---|
| DTDと外部エンティティ | パブリック、システム | The following DTD reference: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Can be resolved using the following Catalog entry: <public publicId="-//W3C//DTD XHTML 1.0 Strict//EN" uri="catalog/xhtml1-strict.dtd"/> or <systemSuffix systemIdSuffix="html1-strict.dtd" uri="catalog/xhtml1-strict.dtd"/> | 
| XInclude | uri | The following XInclude element: <xi:include href="https://openjdk.org/xml/disclaimer.xml"/> can be resolved using a URI entry: <uri name="https://openjdk.org/xml/disclaimer.xml" uri="file:///pathto/local/disclaimer.xml"/> or <uriSuffix uriSuffix="disclaimer.xml" uri="file:///pathto/local/disclaimer.xml"/> | 
| XSDインポート | uri | 
   The following import element:
    <xsd:import namespace="https://openjdk.org/xsd/XSDImport_person"
                schemaLocation="https://openjdk.org/xsd/XSDImport_person.xsd"/>
   can be resolved using a URI entry:
   <uri name="https://openjdk.org/xsd/XSDImport_person.xsd" uri="file:///pathto/local/XSDImport_person.xsd"/>
   or
   <uriSuffix uriSuffix="XSDImport_person.xsd" uri="file:///pathto/local/XSDImport_person.xsd"/>
   or
   <uriSuffix uriSuffix="https://openjdk.org/xsd/XSDImport_person" uri="file:///pathto/local/XSDImport_person.xsd"/>
  | 
| XSD include | uri | The following include element: <xsd:include schemaLocation="https://openjdk.org/xsd/XSDInclude_person.xsd"/> can be resolved using a URI entry: <uri name="https://openjdk.org/xsd/XSDInclude_person.xsd" uri="file:///pathto/local/XSDInclude_person.xsd"/> or <uriSuffix uriSuffix="XSDInclude_person.xsd" uri="file:///pathto/local/XSDInclude_person.xsd"/> | 
| XSLのインポートとインクルード | uri | The following include element: <xsl:include href="https://openjdk.org/xsl/include.xsl"/> can be resolved using a URI entry: <uri name="https://openjdk.org/xsl/include.xsl" uri="file:///pathto/local/include.xsl"/> or <uriSuffix uriSuffix="include.xsl" uri="file:///pathto/local/include.xsl"/> | 
| XSLドキュメント関数 | uri | 
   The document in the following element:
   <xsl:variable name="dummy" select="document('https://openjdk.org/xsl/list.xml')"/>
   can be resolved using a URI entry:
   <uri name="https://openjdk.org/xsl/list.xml" uri="file:///pathto/local/list.xml"/>
   or
   <uriSuffix uriSuffix="list.xml" uri="file:///pathto/local/list.xml"/>
  | 
- 導入されたバージョン:
- 9
- 
ネストされたクラスのサマリーネストされたクラス修飾子と型クラス説明static classCatalogFeaturesオブジェクトをビルドするためのビルダー・クラス。static enum「カタログ機能」表で定義されているフィーチャ型。
- 
メソッドのサマリー修飾子と型メソッド説明static CatalogFeatures.Builderbuilder()CatalogFeaturesオブジェクトを作成するためのビルダーのインスタンスを返します。static CatalogFeaturesdefaults()デフォルト設定でCatalogFeaturesインスタンスを返します。指定されたフィーチャの値を返します。
- 
メソッドの詳細- 
defaultspublic static CatalogFeatures defaults()デフォルト設定でCatalogFeaturesインスタンスを返します。- 戻り値:
- デフォルトのCatalogFeaturesインスタンス
 
- 
getpublic String get(CatalogFeatures.Feature cf) 指定されたフィーチャの値を返します。- パラメータ:
- cf- カタログ機能の型
- 戻り値:
- 機能の値
 
- 
builderpublic static CatalogFeatures.Builder builder()CatalogFeaturesオブジェクトを作成するためのビルダーのインスタンスを返します。- 戻り値:
- ビルダーのインスタンス
 
 
-