クラスXPathFactory

java.lang.Object
javax.xml.xpath.XPathFactory

public abstract class XPathFactory extends Object

XPathFactoryインスタンスを使用して、XPathオブジェクトを作成できます。

検索メカニズムについては、newInstance(String uri)を参照してください。

XPathFactoryクラスはスレッドに対して安全ではありません。 つまり、アプリケーション側で、どのような場合もXPathFactoryオブジェクトを使用するスレッドが1つだけであるようにする必要があります。 実装では、メソッドにsynchronizedのマークを付けて、障害のあるクライアントから保護することをお勧めします。

XPathFactoryは再入不可能です。 newInstanceメソッドの1つが呼び出されているときに、アプリケーションは、同じスレッドからであっても、newInstanceメソッドを再帰的に呼び出すことはできません。

導入されたバージョン:
1.5
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final String
    デフォルトのオブジェクト・モデルURIです。
    static final String
    JAXP仕様に従ったデフォルトのプロパティ名です。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    newInstance()newInstance(String uri)、またはnewInstance(String uri, String factoryClassName, ClassLoader classLoader)としてprotectedコンストラクタを使用して、XPathFactoryの新しいインスタンスを作成する必要があります。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract boolean
    名前が付けられた機能の状態を取得します。
    指定されたプロパティの値を返します。
    abstract boolean
    指定されたオブジェクト・モデルがこのXPathFactoryにサポートされているかを返します。
    XPathFactory組込みシステム・デフォルト実装の新しいインスタンスを作成します。
    デフォルトのオブジェクト・モデル、DEFAULT_OBJECT_MODEL_URI、W3C DOMを使用して、新しいXPathFactoryインスタンスを取得します。
    指定されたオブジェクト・モデルを使用して、新しいXPathFactoryインスタンスを取得します。
    newInstance(String uri, String factoryClassName, ClassLoader classLoader)
    ファクトリ・クラス名からXPathFactoryの新しいインスタンスを取得します。
    abstract XPath
    XPathFactoryがインスタンス化された際に特定された基本となるオブジェクト・モデルを使用して、新しいXPathを返します。
    abstract void
    setFeature(String name, boolean value)
    このXPathFactoryの機能を設定します。
    void
    setProperty(String name, String value)
    このXPathFactoryのプロパティを設定します。
    abstract void
    デフォルトの関数リゾルバを設定します。
    abstract void
    デフォルトの変数リゾルバを設定します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • DEFAULT_PROPERTY_NAME

      public static final String DEFAULT_PROPERTY_NAME

      JAXP仕様に従ったデフォルトのプロパティ名です。

      関連項目:
    • DEFAULT_OBJECT_MODEL_URI

      public static final String DEFAULT_OBJECT_MODEL_URI

      デフォルトのオブジェクト・モデルURIです。

      関連項目:
  • コンストラクタの詳細

  • メソッドの詳細

    • newDefaultInstance

      public static XPathFactory newDefaultInstance()
      XPathFactory組込みシステム・デフォルト実装の新しいインスタンスを作成します。
      実装要件:
      XPathFactory組込みシステム・デフォルト実装は、default object model (W3C DOM)をサポートするためにのみ必要ですが、追加のオブジェクト・モデルをサポートする場合があります。
      戻り値:
      XPathFactory組込みシステム・デフォルト実装の新しいインスタンス。
      導入されたバージョン:
      9
    • newInstance

      public static XPathFactory newInstance()

      デフォルトのオブジェクト・モデル、DEFAULT_OBJECT_MODEL_URI、W3C DOMを使用して、新しいXPathFactoryインスタンスを取得します。

      このメソッドは、機能的には次と同等です。

        newInstance(DEFAULT_OBJECT_MODEL_URI)
      

      W3C DOMの実装が常に使用できるため、このメソッドが失敗することはありません。

      戻り値:
      XPathFactoryのインスタンス。
      スロー:
      RuntimeException - デフォルトのオブジェクト・モデルに対するXPathFactoryの作成時にエラーが発生した場合。
    • newInstance

      public static XPathFactory newInstance(String uri) throws XPathFactoryConfigurationException
      指定されたオブジェクト・モデルを使用して、新しいXPathFactoryインスタンスを取得します。 このメソッドは、「JAXPルックアップ・メカニズム」を使用して、指定したオブジェクト・モデルをサポートするXPathFactory実装を特定およびロードします。

      トラブルシューティングのヒント:

      プロパティ・ファイルがどのように構文解析されるかについては、Properties.load(java.io.InputStream)を参照してください。 特に、コロン「:」は、プロパティ・ファイル内でエスケープされる必要があるため、URIが適切にエスケープされていることを確認してください。 たとえば、

        http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
      

      パラメータ:
      uri - 基本となるオブジェクト・モデルを識別する。 仕様は、URI DEFAULT_OBJECT_MODEL_URI、W3C DOMの場合はhttp://java.sun.com/jaxp/xpath/dom、org.w3c.domパッケージのみを定義し、実装はほかのオブジェクト・モデルのURIを自由に導入可能。
      戻り値:
      XPathFactoryのインスタンス。
      スロー:
      XPathFactoryConfigurationException - 指定されたオブジェクト・モデルが使用できない場合、または構成エラーがある場合。
      NullPointerException - urinullの場合。
      IllegalArgumentException - urinullまたはuri.length()== 0の場合。
    • newInstance

      public static XPathFactory newInstance(String uri, String factoryClassName, ClassLoader classLoader) throws XPathFactoryConfigurationException

      ファクトリ・クラス名からXPathFactoryの新しいインスタンスを取得します。 指定されたファクトリ・クラスが指定されたオブジェクト・モデルをサポートする場合、XPathFactoryが返されます。 この関数は、クラス・パスに複数のプロバイダがある場合に便利です。 どのプロバイダがロードされるかを指定できるため、アプリケーションをさらに制御できます。

      トラブルシューティングのヒント

      jaxp.debugシステム・プロパティを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグ・メッセージをSystem.errに出力します。

      問題がある場合、次のようにします。

      java -Djaxp.debug=1 YourProgram ....
      
      パラメータ:
      uri - 基本となるオブジェクト・モデルを識別する。 仕様は、URI DEFAULT_OBJECT_MODEL_URI、W3C DOMの場合はhttp://java.sun.com/jaxp/xpath/dom、org.w3c.domパッケージのみを定義し、実装はほかのオブジェクト・モデルのURIを自由に導入可能。
      factoryClassName - javax.xml.xpath.XPathFactoryの実装を提供する完全修飾のファクトリ・クラス名。
      classLoader - ファクトリ・クラスのロードに使用されるClassLoader nullの場合は、現在のThreadのコンテキストclassLoaderが、ファクトリ・クラスのロードに使用されます。
      戻り値:
      XPathFactoryの新しいインスタンス
      スロー:
      XPathFactoryConfigurationException - factoryClassNamenullの場合。または、ファクトリ・クラスをロードおよびインスタンス化できない場合。または、ファクトリ・クラスがuriパラメータで指定されたオブジェクト・モデルをサポートしない場合。
      NullPointerException - urinullの場合。
      IllegalArgumentException - urinullまたはuri.length()== 0の場合。
      導入されたバージョン:
      1.6
      関連項目:
    • isObjectModelSupported

      public abstract boolean isObjectModelSupported(String objectModel)

      指定されたオブジェクト・モデルがこのXPathFactoryにサポートされているかを返します。

      パラメータ:
      objectModel - 返されたXPathFactoryを認識するオブジェクト・モデルを指定する。
      戻り値:
      XPathFactoryobjectModelをサポートしている場合はtrue、そうでない場合はfalse
      スロー:
      NullPointerException - objectModelnullの場合。
      IllegalArgumentException - objectModel.length()== 0の場合。
    • setFeature

      public abstract void setFeature(String name, boolean value) throws XPathFactoryConfigurationException
      このXPathFactoryの機能を設定します。 この機能は、XPathFactoryによって作成されるXPathオブジェクトに適用されます。 すでに作成されているXPathオブジェクトには影響しません。

      機能名は完全修飾URIです。 実装が独自の機能を定義することもできます。 生成するXPathFactoryまたはXPathがその機能をサポートできない場合は、XPathFactoryConfigurationExceptionがスローされます。 XPathFactoryは機能の値を表示できますが、その状態を変更することはできません。

      実装はすべて、XMLConstants.FEATURE_SECURE_PROCESSING機能をサポートしている必要があります。 機能がtrueの場合は、外部関数を参照するとエラーになります。 こうした場合、実装はXPathFunctionResolverを呼び出せないので、XPathFunctionExceptionをスローします。

      パラメータ:
      name - 機能名。
      value - 機能の状態がtruefalseか。
      スロー:
      XPathFactoryConfigurationException - このXPathFactoryまたはそれによって作成されるXPathがこの機能をサポートできない場合。
      NullPointerException - namenullの場合。
    • getFeature

      public abstract boolean getFeature(String name) throws XPathFactoryConfigurationException

      名前が付けられた機能の状態を取得します。

      機能名は完全修飾URIです。 実装が独自の機能を定義することもできます。 生成するXPathFactoryまたはXPathがその機能をサポートできない場合は、XPathFactoryConfigurationExceptionがスローされます。 XPathFactoryは機能の値を表示できますが、その状態を変更することはできません。

      パラメータ:
      name - 機能名。
      戻り値:
      名前が付けられた機能の状態。
      スロー:
      XPathFactoryConfigurationException - このXPathFactoryまたはそれによって作成されるXPathがこの機能をサポートできない場合。
      NullPointerException - namenullの場合。
    • setXPathVariableResolver

      public abstract void setXPathVariableResolver(XPathVariableResolver resolver)

      デフォルトの変数リゾルバを設定します。

      このファクトリで構築されたXPathオブジェクトは、デフォルトで指定されたリゾルバを使用します。

      resolvernullの場合、NullPointerExceptionがスローされます。

      パラメータ:
      resolver - 変数リゾルバ。
      スロー:
      NullPointerException - resolvernullの場合。
    • setXPathFunctionResolver

      public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)

      デフォルトの関数リゾルバを設定します。

      このファクトリで構築されたXPathオブジェクトは、デフォルトで指定されたリゾルバを使用します。

      resolvernullの場合、NullPointerExceptionがスローされます。

      パラメータ:
      resolver - XPath関数リゾルバ。
      スロー:
      NullPointerException - resolvernullの場合。
    • newXPath

      public abstract XPath newXPath()

      XPathFactoryがインスタンス化された際に特定された基本となるオブジェクト・モデルを使用して、新しいXPathを返します。

      戻り値:
      XPathの新しいインスタンス。
    • setProperty

      public void setProperty(String name, String value)
      このXPathFactoryのプロパティを設定します。 このプロパティは、XPathFactoryによって作成されるXPathオブジェクトに適用されます。 すでに作成されているXPathオブジェクトには影響しません。

      プロパティは、このXPathFactoryで定義することも、基礎となる実装で定義することもできます。

      実装要件:
      デフォルト実装は、UnsupportedOperationExceptionをスローします。
      パラメータ:
      name - プロパティ名
      value - プロパティの値
      スロー:
      IllegalArgumentException - プロパティ名が認識されない場合、または値を割り当てることができない場合
      UnsupportedOperationException - 実装でメソッドがサポートされていない場合
      NullPointerException - namenullである場合
      導入されたバージョン:
      18
    • getProperty

      public String getProperty(String name)
      指定されたプロパティの値を返します。
      実装要件:
      デフォルト実装は、UnsupportedOperationExceptionをスローします。
      パラメータ:
      name - プロパティ名
      戻り値:
      プロパティの値。
      スロー:
      IllegalArgumentException - プロパティ名が認識されない場合
      UnsupportedOperationException - 実装でメソッドがサポートされていない場合
      NullPointerException - namenullである場合
      導入されたバージョン:
      18