モジュール java.xml
パッケージ javax.xml.catalog

クラスCatalogFeatures

java.lang.Object
javax.xml.catalog.CatalogFeatures

public class CatalogFeatures extends Object
CatalogFeaturesは、機能およびプロパティのコレクションを保持します。
カタログ機能
機能 説明 プロパティ名 システム・プロパティ[1] 値[2] アクション
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ライブラリ内のプロセスで使用できます。 次の表に、このようなすべてのプロセスを示します。

カタログ・サポートを持つプロセス

カタログ・サポートを持つプロセス
プロセス カタログ・エントリ型
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
  • メソッドの詳細

    • defaults

      public static CatalogFeatures defaults()
      デフォルト設定でCatalogFeaturesインスタンスを返します。
      戻り値:
      デフォルトのCatalogFeaturesインスタンス
    • get

      指定されたフィーチャの値を返します。
      パラメータ:
      cf - カタログ機能の型
      戻り値:
      機能の値
    • builder

      public static CatalogFeatures.Builder builder()
      CatalogFeaturesオブジェクトを作成するためのビルダーのインスタンスを返します。
      戻り値:
      ビルダーのインスタンス