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

クラス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
  • フィールド詳細

    • 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 modelW3C 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