public abstract class XPathFactory extends Object
XPathFactoryインスタンスを使用して、XPathオブジェクトを作成できます。
検索メカニズムについては、newInstance(String uri)を参照してください。
XPathFactoryクラスはスレッドに対して安全ではありません。 つまり、アプリケーション側で、どのような場合もXPathFactoryオブジェクトを使用するスレッドが1つだけであるようにする必要があります。 実装では、メソッドにsynchronizedのマークを付けて、障害のあるクライアントから保護することをお勧めします。
XPathFactoryは再入不可能です。 newInstanceメソッドの1つが呼び出されているときに、アプリケーションは、同じスレッドからであっても、newInstanceメソッドを再帰的に呼び出すことはできません。
- 導入されたバージョン:
- 1.5
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringDEFAULT_OBJECT_MODEL_URIデフォルトのオブジェクト・モデルURIです。static StringDEFAULT_PROPERTY_NAMEJAXP仕様に従ったデフォルトのプロパティ名です。 -
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedXPathFactory()newInstance()、newInstance(String uri)、またはnewInstance(String uri, String factoryClassName, ClassLoader classLoader)としてprotectedコンストラクタを使用して、XPathFactoryの新しいインスタンスを作成する必要があります。 -
メソッドのサマリー
修飾子と型 メソッド 説明 abstract booleangetFeature(String name)名前が付けられた機能の状態を取得します。abstract booleanisObjectModelSupported(String objectModel)指定されたオブジェクト・モデルがこのXPathFactoryにサポートされているかを返します。static XPathFactorynewDefaultInstance()XPathFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。static XPathFactorynewInstance()デフォルトのオブジェクト・モデル、DEFAULT_OBJECT_MODEL_URI、W3C DOMを使用して、新しいXPathFactoryインスタンスを取得します。static XPathFactorynewInstance(String uri)指定されたオブジェクト・モデルを使用して、新しいXPathFactoryインスタンスを取得します。static XPathFactorynewInstance(String uri, String factoryClassName, ClassLoader classLoader)ファクトリ・クラス名からXPathFactoryの新しいインスタンスを取得します。abstract XPathnewXPath()XPathFactoryがインスタンス化された際に特定された基本となるオブジェクト・モデルを使用して、新しいXPathを返します。abstract voidsetFeature(String name, boolean value)このファクトリによって生成されたXPathFactoryおよびXPathの機能を設定します。abstract voidsetXPathFunctionResolver(XPathFunctionResolver resolver)デフォルトの関数リゾルバを設定します。abstract voidsetXPathVariableResolver(XPathVariableResolver resolver)デフォルトの変数リゾルバを設定します。
-
フィールド詳細
-
DEFAULT_PROPERTY_NAME
public static final String DEFAULT_PROPERTY_NAMEJAXP仕様に従ったデフォルトのプロパティ名です。
- 関連項目:
- 定数フィールド値
-
DEFAULT_OBJECT_MODEL_URI
public static final String DEFAULT_OBJECT_MODEL_URIデフォルトのオブジェクト・モデルURIです。
- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
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の新しいインスタンス。
-