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 final XPathFactory newInstance()
デフォルトのオブジェクトモデル、DEFAULT_OBJECT_MODEL_URI
、W3C DOM を使用して、新しい XPathFactory
インスタンスを取得します。
このメソッドは、機能的には次と同等です。
newInstance(DEFAULT_OBJECT_MODEL_URI)
W3C DOM の実装が常に使用できるため、このメソッドが失敗することはありません。
XPathFactory
のインスタンス。RuntimeException
- デフォルトのオブジェクトモデルに対する XPathFactory
の作成時にエラーが発生した場合。public static final XPathFactory newInstance(String uri) throws XPathFactoryConfigurationException
指定されたオブジェクトモデルを使用して、新しい XPathFactory
インスタンスを取得します。
XPathFactory
オブジェクトを検索する場合、このメソッドは「クラスローダー」がコンテキストクラスローダーを参照する次の順番で、次の場所を調べます。
DEFAULT_PROPERTY_NAME
+ :uri が存在し、uri がこのメソッドのパラメータである場合、その値はクラス名として読み取られる。このメソッドは、クラスローダーを使用してこのクラスの新しいインスタンスの作成を試み、成功した場合はそれを返します。
javax.xml.xpath.XPathFactory
に一致するサービスプロバイダのプロバイダ構成ファイルを要求されます。ファイル形式と構文解析規則については、JAR ファイルの仕様を参照してください。各サービスプロバイダは、次のメソッドを実装している必要があります。
isObjectModelSupported(String objectModel)
指定されたオブジェクトモデルをサポートするクラスローダー内で最初に検出されたサービスプロバイダが返されます。
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, 2013, Oracle and/or its affiliates. All rights reserved.