public abstract class XPathFactory extends Object
XPathFactory
インスタンスを使用して、XPath
オブジェクトを作成できます。
検索メカニズムについては、newInstance(String uri)
を参照してください。
XPathFactory
クラスはスレッドに対して安全ではありません。 つまり、アプリケーション側で、どのような場合もXPathFactory
オブジェクトを使用するスレッドが1つだけであるようにする必要があります。 実装では、メソッドにsynchronized
のマークを付けて、障害のあるクライアントから保護することをお勧めします。
XPathFactory
は再入不可能です。 newInstance
メソッドの1つが呼び出されているときに、アプリケーションは、同じスレッドからであっても、newInstance
メソッドを再帰的に呼び出すことはできません。
- 導入されたバージョン:
- 1.5
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 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
newDefaultInstance()
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)
デフォルトの変数リゾルバを設定します。
-
フィールド詳細
-
コンストラクタの詳細
-
XPathFactory
protected XPathFactory()newInstance()
、newInstance(String uri)
、またはnewInstance(String uri, String factoryClassName, ClassLoader classLoader)
としてprotectedコンストラクタを使用して、XPathFactory
の新しいインスタンスを作成する必要があります。
-
-
メソッドの詳細
-
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
インスタンスを取得します。XPathFactory
オブジェクトを検索する場合、このメソッドは「クラス・ローダー」がコンテキスト・クラス・ローダーを参照する次の順番で、次の場所を調べます。-
システム・プロパティ
DEFAULT_PROPERTY_NAME
+:uriが存在し、uriがこのメソッドのパラメータである場合、その値はクラス名として読み取られる。 このメソッドは、クラス・ローダーを使用してこのクラスの新しいインスタンスの作成を試み、成功した場合はそれを返します。 -
構成ファイル"jaxp.properties"を使用します。 このファイルは標準の
Properties
形式であり、通常Javaインストールのconfディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。jaxp.propertiesファイルはJAXP実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 最初に読み込まれたあと、jaxp.propertiesのプロパティの値を変更することはできない。
-
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
- 基本となるオブジェクト・モデルを識別する。 仕様は、URIDEFAULT_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
の場合。
-
-
newInstance
public static XPathFactory newInstance(String uri, String factoryClassName, ClassLoader classLoader) throws XPathFactoryConfigurationExceptionファクトリ・クラス名から
XPathFactory
の新しいインスタンスを取得します。 指定されたファクトリ・クラスが指定されたオブジェクト・モデルをサポートする場合、XPathFactory
が返されます。 この関数は、クラス・パスに複数のプロバイダがある場合に便利です。 どのプロバイダがロードされるかを指定できるため、アプリケーションをさらに制御できます。Tip for Trouble-shooting
jaxp.debug
システム・プロパティを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグ・メッセージをSystem.err
に出力します。問題がある場合、次のようにします。
java -Djaxp.debug=1 YourProgram ....
- パラメータ:
uri
- 基本となるオブジェクト・モデルを識別する。 仕様は、URIDEFAULT_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
の場合。- 導入されたバージョン:
- 1.6
- 関連項目:
newInstance()
,newInstance(String uri)
-
isObjectModelSupported
public abstract boolean isObjectModelSupported(String objectModel)指定されたオブジェクト・モデルがこの
XPathFactory
にサポートされているかを返します。- パラメータ:
objectModel
- 返されたXPathFactory
を認識するオブジェクト・モデルを指定する。- 戻り値:
XPathFactory
がobjectModel
をサポートしている場合はtrue
、そうでない場合はfalse
。- 例外:
NullPointerException
-objectModel
がnull
の場合。IllegalArgumentException
-objectModel.length()== 0
の場合。
-
setFeature
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
の場合。
-
getFeature
public abstract boolean getFeature(String name) throws XPathFactoryConfigurationException名前が付けられた機能の状態を取得します。
機能名は完全修飾
URI
です。 実装が独自の機能を定義することもできます。 生成するXPathFactory
またはXPath
がその機能をサポートできない場合は、XPathFactoryConfigurationException
がスローされます。XPathFactory
は機能の値を表示できますが、その状態を変更することはできません。- パラメータ:
name
- 機能名。- 戻り値:
- 名前が付けられた機能の状態。
- 例外:
XPathFactoryConfigurationException
- このXPathFactory
またはそれによって作成されるXPath
がこの機能をサポートできない場合。NullPointerException
-name
がnull
の場合。
-
setXPathVariableResolver
public abstract void setXPathVariableResolver(XPathVariableResolver resolver)デフォルトの変数リゾルバを設定します。
このファクトリで構築された
XPath
オブジェクトは、デフォルトで指定されたリゾルバを使用します。resolver
がnull
の場合、NullPointerException
がスローされます。- パラメータ:
resolver
- 変数リゾルバ。- 例外:
NullPointerException
-resolver
がnull
の場合。
-
setXPathFunctionResolver
public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)デフォルトの関数リゾルバを設定します。
このファクトリで構築された
XPath
オブジェクトは、デフォルトで指定されたリゾルバを使用します。resolver
がnull
の場合、NullPointerException
がスローされます。- パラメータ:
resolver
- XPath関数リゾルバ。- 例外:
NullPointerException
-resolver
がnull
の場合。
-
newXPath
public abstract XPath newXPath()XPathFactory
がインスタンス化された際に特定された基本となるオブジェクト・モデルを使用して、新しいXPath
を返します。- 戻り値:
XPath
の新しいインスタンス。
-