| Feature | 説明 | プロパティ名 | システム・プロパティ[1] | jaxp.properties [1] | 値[2] | ACtion | |
|---|---|---|---|---|---|---|---|
| 型 | 値 | ||||||
| FILES | カタログ・ファイルを見つけるためのURIのセミコロン区切りリスト。 URIは絶対的で、URIスキーム用のURLプロトコル・ハンドラを持っていなければなりません。 | javax.xml.catalog.files | javax.xml.catalog.files | javax.xml.catalog.files | String | URI | 最初のカタログを現在のカタログとして読み取ります。デリゲート・カタログが存在する場合は、現在のカタログに一致するものが見つからない場合は、他のものをロードします。 | 
| PREFER | パブリックIDとシステムIDの間の優先度を示します。 デフォルト値はpublic [3]です。 | javax.xml.catalog.prefer | 該当なし | 該当なし | String | system | 一致するかどうかをシステム・エントリで検索します。外部識別子が公開識別子のみを指定する場合は公開エントリを検索 | 
| public | 一致するかどうかをシステム・エントリで検索します。一致するシステム・エントリがない場合にパブリック・エントリを検索します。 | ||||||
| DEFER | デリゲート・エントリまたはnextCatalogで指定されたものを含む代替カタログが必要になるまで読み込まれないことを示します。 デフォルト値はtrueです。 | javax.xml.catalog.defer [4] | javax.xml.catalog.defer | javax.xml.catalog.defer | String | true | 必要に応じて代替カタログを読み込みます。 | 
| false | すべてのカタログ[5]を読み込みます。 | ||||||
| RESOLVE | 指定されたすべてのカタログが使い尽くされた後に一致するエントリが見つからない場合のアクションを決定します。 デフォルトはstrictです。 | javax.xml.catalog.resolve [4] | javax.xml.catalog.resolve | javax.xml.catalog.resolve | String | strict | 一致しない場合はCatalogExceptionをスローします。 | 
| continue | あたかも一致しないかのようにXMLパーサーを続行できるようにします。 | ||||||
| ignore | 一致するものがない場合、外部参照をスキップするようにXMLパーサーに指示します。 | ||||||
[1] "N/A"とマークされた機能のSystemプロパティはありません。
 [2]この値は大文字と小文字を区別し、この表に記載されているとおりにしてください。 指定されていない値はすべてIllegalArgumentExceptionになります。 
 
[3]カタログ仕様では、「prefer属性」の複雑なルールが定義されています。 preferはpublicでもsystemでも構いませんが、実際にはシステムの優先オプションが選択されています。つまり、オプションがあっても常にシステム・エントリが使用されます。 優先権が公開でシステム・エントリが見つからない場合にのみ、公開エントリが検討されます。 したがって、prefer属性をpublic (これはデフォルトです)として設定することをお勧めします。
 [4] OASISカタログ仕様の非標準属性でも、deferおよびresolveは、JavaカタログAPIによって認識され、preferはメイン・カタログのカタログ項目の属性と同じです。 メイン・カタログ・ファイルのカタログ・エントリに指定された属性のみが使用されることに注意してください。 
 
 [5]カタログ・ストア全体を共有する場合は、javax.xml.catalog.deferプロパティをfalseに設定して、カタログ全体をリロードできるようにすることが望ましい場合があります。
 
スコープとオーダー
機能およびプロパティは、カタログ・ファイル、カタログAPI、システム・プロパティ、およびjaxp.propertiesを使用して設定できます。優先順位は同じです。
 
 カタログおよびグループ・エントリのカタログ・ファイルの属性として指定されたプロパティは、その他の設定より優先されます。 たとえば、prefer属性が<catalog prefer="public">のようにカタログ・ファイルに設定されている場合、"prefer"プロパティの他の入力は不要であるか無視されます。 
 
 カタログAPIを使用して設定されたプロパティは、システム・プロパティおよび/またはjaxp.propertiesで設定されたプロパティよりも優先されます。 複数のインタフェースの場合は、最新の手順が優先されます。 CatalogFeatures.Feature.FILESでは、CatalogManagerのメソッドで指定されたURIがCatalogFeatures.Builderから入力されたURIを上書きすることを意味します。 
 
 設定されたシステム・プロパティは、jaxp.propertiesのプロパティを上書きします。
 
 jaxp.propertiesファイルは通常、Javaインストールのconfディレクトリにあります。 このファイルはJAXP実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 jaxp.propertiesが読み取られた後、そのプロパティの値を変更することはできません。 
 
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プロセッサ全体でサポートされています。 上記の機能は、setPropertyまたはsetAttributeインタフェースを定義するJAXPファクトリまたはプロセッサを通じて設定できます。 たとえば、次のコード・スニペットは、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機能と有効なカタログ・ファイルの存在の両方に依存します。 JAXPプロセッサは、機能がtrueで有効なカタログ・ファイルがjavax.xml.catalog.filesプロパティで指定されている場合にのみカタログを使用します。 USE_CATALOGがfalseに設定されているか、カタログ・ファイルが指定されていない場合、カタログを使用しようとしません。 
 
 JAXPプロセッサはCatalogFeaturesのデフォルト設定を観察します。 たとえば、javax.xml.catalog.resolveプロパティのデフォルト値がstrictであるため、一致するエントリが見つからない場合、プロセッサはデフォルトでExceptionをレポートします。 
 
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="http://openjdk.java.net/xml/disclaimer.xml"/> can be resolved using a URI entry: <uri name="http://openjdk.java.net/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="http://openjdk.java.net/xsd/XSDImport_person"
                schemaLocation="http://openjdk.java.net/xsd/XSDImport_person.xsd"/>
   can be resolved using a URI entry:
   <uri name="http://openjdk.java.net/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="http://openjdk.java.net/xsd/XSDImport_person" uri="file:///pathto/local/XSDImport_person.xsd"/>
  | 
| XSD include | uri | The following include element: <xsd:include schemaLocation="http://openjdk.java.net/xsd/XSDInclude_person.xsd"/> can be resolved using a URI entry: <uri name="http://openjdk.java.net/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="http://openjdk.java.net/xsl/include.xsl"/> can be resolved using a URI entry: <uri name="http://openjdk.java.net/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('http://openjdk.java.net/xsl/list.xml')"/>
   can be resolved using a URI entry:
   <uri name="http://openjdk.java.net/xsl/list.xml" uri="file:///pathto/local/list.xml"/>
   or
   <uriSuffix uriSuffix="list.xml" uri="file:///pathto/local/list.xml"/>
  | 
- 導入されたバージョン:
- 9
- 
ネストされたクラスのサマリーネストされたクラス修飾子と型クラス説明static classCatalogFeaturesオブジェクトを構築するためのBuilderクラス。static class「「カタログ機能」表」で定義されているフィーチャ型。
- 
メソッドのサマリー修飾子と型メソッド説明static CatalogFeatures.Builderbuilder()CatalogFeaturesオブジェクトを作成するためのBuilderのインスタンスを返します。static CatalogFeaturesdefaults()デフォルト設定のCatalogFeaturesインスタンスを返します。指定したフィーチャの値を返します。
- 
メソッドの詳細- 
defaultspublic static CatalogFeatures defaults()デフォルト設定のCatalogFeaturesインスタンスを返します。- 戻り値:
- デフォルトのCatalogFeaturesインスタンス
 
- 
getpublic String get(CatalogFeatures.Feature cf)指定したフィーチャの値を返します。- パラメータ:
- cf- カタログ機能の型
- 戻り値:
- 機能の値
 
- 
builderpublic static CatalogFeatures.Builder builder()CatalogFeaturesオブジェクトを作成するためのBuilderのインスタンスを返します。- 戻り値:
- ビルダーのインスタンス
 
 
-