JavaTM 2 Platform
Standard Ed. 5.0

javax.xml.xpath
クラス XPathFactory

java.lang.Object
  上位を拡張 javax.xml.xpath.XPathFactory

public abstract class XPathFactory
extends Object

XPathFactory インスタンスを使用して、XPath オブジェクトを作成できます。

検索機構については、newInstance(String uri) を参照してください。

導入されたバージョン:
1.5

フィールドの概要
static String DEFAULT_OBJECT_MODEL_URI
          デフォルトのオブジェクトモデル URI です。
static String DEFAULT_PROPERTY_NAME
          JAXP 仕様に従ったデフォルトのプロパティ名です。
 
コンストラクタの概要
protected XPathFactory()
          newInstance() または newInstance(String uri) として protected コンストラクタを使用して、XPathFactory の新しいインスタンスを作成する必要があります。
 
メソッドの概要
abstract  boolean getFeature(String name)
          名前が付けられた機能の状態を取得します。
abstract  boolean isObjectModelSupported(String objectModel)
          指定されたオブジェクトモデルがこの XPathFactory にサポートされているかを返します。
static XPathFactory newInstance()
          デフォルトのオブジェクトモデル、DEFAULT_OBJECT_MODEL_URI を使用して、新しい XPathFactory インスタンスを取得します。
static XPathFactory newInstance(String uri)
          指定されたオブジェクトモデルを使用して、新しい 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)
          デフォルトの変数リゾルバを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_PROPERTY_NAME

public static final String DEFAULT_PROPERTY_NAME

JAXP 仕様に従ったデフォルトのプロパティ名です。

関連項目:
定数フィールド値

DEFAULT_OBJECT_MODEL_URI

public static final String DEFAULT_OBJECT_MODEL_URI

デフォルトのオブジェクトモデル URI です。

関連項目:
定数フィールド値
コンストラクタの詳細

XPathFactory

protected XPathFactory()

newInstance() または newInstance(String uri) として protected コンストラクタを使用して、XPathFactory の新しいインスタンスを作成する必要があります。

メソッドの詳細

newInstance

public static final XPathFactory newInstance()

デフォルトのオブジェクトモデル、DEFAULT_OBJECT_MODEL_URI を使用して、新しい XPathFactory インスタンスを取得します。

このメソッドは、機能的には次と同等です。


   newInstance(DEFAULT_OBJECT_MODEL_URI)
 

W3C DOM の実装が常に使用できるため、このメソッドが失敗することはありません。

戻り値:
XPathFactory のインスタンス

newInstance

public static final XPathFactory newInstance(String uri)
                                      throws XPathFactoryConfigurationException

指定されたオブジェクトモデルを使用して、新しい XPathFactory インスタンスを取得します。

XPathFactory オブジェクトを検索する場合、このメソッドは「クラスローダ」がコンテキストクラスローダを参照する以下の順番で、次の場所を調べます。

  1. システムプロパティ DEFAULT_PROPERTY_NAME + :uri が存在し、uri がこのメソッドのパラメータである場合、その値はクラス名として読み取られる。このメソッドは、クラスローダを使用してこのクラスの新しいインスタンスを作成を試み、成功した場合はそれを返す
  2. ${java.home}/lib/jaxp.properties が読み取られ、上記のシステムプロパティであるキーに関連付けられた値が検索される。値が存在すれば、上記のように値が処理される
  3. クラスローダは、リソースディレクトリ META-INF/services 内の jjavax.xml.xpath.XPathFactory に一致するサービスプロバイダのプロバイダ構成ファイルを要求されます。ファイル形式と構文解析規則については、JAR ファイルの仕様を参照してください。各サービスプロバイダは、次のメソッドを実装している必要があります。
     isObjectModelSupported(String objectModel) 
    指定されたオブジェクトモデルをサポートするクラスローダ内で最初に検出されたサービスプロバイダが返されます。
  4. プラットフォームのデフォルト 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、the org.w3c.dom package の http://java.sun.com/jaxp/xpath/dom のみを定義し、実装は他のオブジェクトモデルの URI を自由に導入可能
戻り値:
XPathFactory のインスタンス
例外:
XPathFactoryConfigurationException - 指定されたオブジェクトモデルが使用できない場合
NullPointerException - urinull の場合
IllegalArgumentException - uri.length() == 0 の場合

isObjectModelSupported

public abstract boolean isObjectModelSupported(String objectModel)

指定されたオブジェクトモデルがこの XPathFactory にサポートされているかを返します。

パラメータ:
objectModel - 返された XPathFactory を認識するオブジェクトモデルを指定する
戻り値:
XPathFactoryobjectModel をサポートしている場合は true、そうでない場合は false
例外:
NullPointerException - objectModelnull の場合
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 - 機能の状態が truefalse
例外:
XPathFactoryConfigurationException - 作成する XPathFactory または XPath がこの機能をサポートできない場合
NullPointerException - namenull の場合

getFeature

public abstract boolean getFeature(String name)
                            throws XPathFactoryConfigurationException

名前が付けられた機能の状態を取得します。

機能名は完全修飾 URI です。実装が独自の機能を定義することもできます。生成する XPathFactory または XPath がその機能をサポートできない場合は、XPathFactoryConfigurationException がスローされます。XPathFactory は機能の値を表示できますが、その状態を変更することはできません。

パラメータ:
name - 機能名
戻り値:
名前が付けられた機能の状態
例外:
XPathFactoryConfigurationException - 作成する XPathFactory または XPath がこの機能をサポートできない場合
NullPointerException - namenull の場合

setXPathVariableResolver

public abstract void setXPathVariableResolver(XPathVariableResolver resolver)

デフォルトの変数リゾルバを設定します。

このファクトリで構築された XPath オブジェクトは、デフォルトで指定されたリゾルバを使用します。

resolvernull の場合、NullPointerException がスローされます。

パラメータ:
resolver - 変数リゾルバ。
例外:
NullPointerException - resolvernull の場合

setXPathFunctionResolver

public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)

デフォルトの関数リゾルバを設定します。

このファクトリで構築された XPath オブジェクトは、デフォルトで指定されたリゾルバを使用します。

resolvernull の場合、NullPointerException がスローされます。

パラメータ:
resolver - XPath 関数リゾルバ
例外:
NullPointerException - resolvernull の場合

newXPath

public abstract XPath newXPath()

XPathFactory がインスタンス化された際に特定された基本となるオブジェクトモデルを使用して、新しい XPath を返します。

戻り値:
XPath の新しいインスタンス

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。