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, 2014, Oracle and/or its affiliates. All rights reserved.