public abstract class XPathFactory extends Object
XPathFactoryインスタンスを使用して、XPathオブジェクトを作成できます。
検索メカニズムについては、newInstance(String uri)を参照してください。
XPathFactoryクラスはスレッドに対して安全ではありません。 つまり、アプリケーション側で、どのような場合もXPathFactoryオブジェクトを使用するスレッドが1つだけであるようにする必要があります。 実装では、メソッドにsynchronizedのマークを付けて、障害のあるクライアントから保護することをお勧めします。
XPathFactoryは再入不可能です。 newInstanceメソッドの1つが呼び出されているときに、アプリケーションは、同じスレッドからであっても、newInstanceメソッドを再帰的に呼び出すことはできません。
| 修飾子と型 | フィールド | 説明 |
|---|---|---|
static String |
DEFAULT_OBJECT_MODEL_URI |
デフォルトのオブジェクト・モデルURIです。
|
static String |
DEFAULT_PROPERTY_NAME |
JAXP仕様に従ったデフォルトのプロパティ名です。
|
| 修飾子 | コンストラクタ | 説明 |
|---|---|---|
protected |
XPathFactory() |
newInstance()、newInstance(String uri)、またはnewInstance(String uri, String factoryClassName, ClassLoader classLoader)としてprotectedコンストラクタを使用して、XPathFactoryの新しいインスタンスを作成する必要があります。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
abstract boolean |
getFeature(String name) |
名前が付けられた機能の状態を取得します。
|
abstract boolean |
isObjectModelSupported(String objectModel) |
指定されたオブジェクト・モデルがこの
XPathFactoryにサポートされているかを返します。 |
static XPathFactory |
newInstance() |
デフォルトのオブジェクト・モデル、
DEFAULT_OBJECT_MODEL_URI、W3C DOMを使用して、新しいXPathFactoryインスタンスを取得します。 |
static XPathFactory |
newInstance(String uri) |
指定されたオブジェクト・モデルを使用して、新しい
XPathFactoryインスタンスを取得します。 |
static XPathFactory |
newInstance(String uri, String factoryClassName, ClassLoader classLoader) |
ファクトリ・クラス名から
XPathFactoryの新しいインスタンスを取得します。 |
abstract XPath |
newXPath() |
XPathFactoryがインスタンス化された際に特定された基本となるオブジェクト・モデルを使用して、新しいXPathを返します。 |
abstract void |
setFeature(String name, boolean value) |
このファクトリによって生成された
XPathFactoryおよびXPathの機能を設定します。 |
abstract void |
setXPathFunctionResolver(XPathFunctionResolver resolver) |
デフォルトの関数リゾルバを設定します。
|
abstract void |
setXPathVariableResolver(XPathVariableResolver resolver) |
デフォルトの変数リゾルバを設定します。
|
public static final String DEFAULT_PROPERTY_NAME
JAXP仕様に従ったデフォルトのプロパティ名です。
protected XPathFactory()
newInstance()、newInstance(String uri)、またはnewInstance(String uri, String factoryClassName, ClassLoader classLoader)としてprotectedコンストラクタを使用して、XPathFactoryの新しいインスタンスを作成する必要があります。
public static XPathFactory newInstance()
デフォルトのオブジェクト・モデル、DEFAULT_OBJECT_MODEL_URI、W3C DOMを使用して、新しいXPathFactoryインスタンスを取得します。
このメソッドは、機能的には次と同等です。
newInstance(DEFAULT_OBJECT_MODEL_URI)
W3C DOMの実装が常に使用できるため、このメソッドが失敗することはありません。
XPathFactoryのインスタンス。RuntimeException - デフォルトのオブジェクト・モデルに対するXPathFactoryの作成時にエラーが発生した場合。public static XPathFactory newInstance(String uri) throws XPathFactoryConfigurationException
指定されたオブジェクト・モデルを使用して、新しいXPathFactoryインスタンスを取得します。
XPathFactoryオブジェクトを検索する場合、このメソッドは「クラス・ローダー」がコンテキスト・クラス・ローダーを参照する次の順番で、次の場所を調べます。
DEFAULT_PROPERTY_NAME+:uriが存在し、uriがこのメソッドのパラメータである場合、その値はクラス名として読み取られる。 このメソッドは、クラス・ローダーを使用してこのクラスの新しいインスタンスの作成を試み、成功した場合はそれを返します。
ServiceLoaderクラスで定義されているサービス・プロバイダのロード機能を使用して、デフォルトのロード・メカニズムによってサービスの実装の特定およびロードを試みる。サービス・プロバイダのロード機能は、現在のスレッドのコンテキスト・クラス・ローダーを使用してサービスのロードを試みる。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。 isObjectModelSupported(String objectModel)を実装している必要があります。 指定されたオブジェクト・モデルをサポートする最初に検出されたサービス・プロバイダが返されます。 ServiceConfigurationErrorが発生した場合、XPathFactoryConfigurationExceptionがスローされます。
XPathFactoryは、実装固有の方法で配置される。 W3C DOM用のプラットフォームのデフォルトXPathFactory、つまりDEFAULT_OBJECT_MODEL_URIがある必要があります。
すべてが失敗した場合、XPathFactoryConfigurationExceptionがスローされます。
トラブルシューティングのヒント:
プロパティ・ファイルがどのように構文解析されるかについては、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 - uriがnullの場合。IllegalArgumentException - uriがnullまたはuri.length()== 0の場合。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 - factoryClassNameがnullの場合。または、ファクトリ・クラスをロードおよびインスタンス化できない場合。または、ファクトリ・クラスがuriパラメータで指定されたオブジェクト・モデルをサポートしない場合。NullPointerException - uriがnullの場合。IllegalArgumentException - uriがnullまたはuri.length()== 0の場合。newInstance(), newInstance(String uri)public abstract boolean isObjectModelSupported(String objectModel)
指定されたオブジェクト・モデルがこのXPathFactoryにサポートされているかを返します。
objectModel - 返されたXPathFactoryを認識するオブジェクト・モデルを指定する。XPathFactoryがobjectModelをサポートしている場合はtrue、そうでない場合はfalse。NullPointerException - objectModelがnullの場合。IllegalArgumentException - objectModel.length()== 0の場合。public abstract void setFeature(String name, boolean value) throws XPathFactoryConfigurationException
このファクトリによって生成されたXPathFactoryおよびXPathの機能を設定します。
機能名は完全修飾URIです。 実装が独自の機能を定義することもできます。 生成するXPathFactoryまたはXPathがその機能をサポートできない場合は、XPathFactoryConfigurationExceptionがスローされます。 XPathFactoryは機能の値を表示できますが、その状態を変更することはできません。
実装はすべて、XMLConstants.FEATURE_SECURE_PROCESSING機能をサポートしている必要があります。 機能がtrueの場合は、外部関数を参照するとエラーになります。 こうした場合、実装はXPathFunctionResolverを呼び出せないので、XPathFunctionExceptionをスローします。
name - 機能名。value - 機能の状態がtrueかfalseか。XPathFactoryConfigurationException - このXPathFactoryまたはそれによって作成されるXPathがこの機能をサポートできない場合。NullPointerException - nameがnullの場合。public abstract boolean getFeature(String name) throws XPathFactoryConfigurationException
名前が付けられた機能の状態を取得します。
機能名は完全修飾URIです。 実装が独自の機能を定義することもできます。 生成するXPathFactoryまたはXPathがその機能をサポートできない場合は、XPathFactoryConfigurationExceptionがスローされます。 XPathFactoryは機能の値を表示できますが、その状態を変更することはできません。
name - 機能名。XPathFactoryConfigurationException - このXPathFactoryまたはそれによって作成されるXPathがこの機能をサポートできない場合。NullPointerException - nameがnullの場合。public abstract void setXPathVariableResolver(XPathVariableResolver resolver)
デフォルトの変数リゾルバを設定します。
このファクトリで構築されたXPathオブジェクトは、デフォルトで指定されたリゾルバを使用します。
resolverがnullの場合、NullPointerExceptionがスローされます。
resolver - 変数リゾルバ。NullPointerException - resolverがnullの場合。public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)
デフォルトの関数リゾルバを設定します。
このファクトリで構築されたXPathオブジェクトは、デフォルトで指定されたリゾルバを使用します。
resolverがnullの場合、NullPointerExceptionがスローされます。
resolver - XPath関数リゾルバ。NullPointerException - resolverがnullの場合。public abstract XPath newXPath()
XPathFactoryがインスタンス化された際に特定された基本となるオブジェクト・モデルを使用して、新しいXPathを返します。
XPathの新しいインスタンス。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。