JavaTM Platform
Standard Ed. 6

javax.xml.parsers
クラス SAXParserFactory

java.lang.Object
  上位を拡張 javax.xml.parsers.SAXParserFactory

public abstract class SAXParserFactory
extends Object

アプリケーションが SAX ベースのパーサーを構成および取得して XML ドキュメントを構文解析できるようにするファクトリ API を定義します。


コンストラクタの概要
protected SAXParserFactory()
          newInstance() を強制的に使用する protected コンストラクタです。
 
メソッドの概要
abstract  boolean getFeature(String name)
          org.xml.sax.XMLReader の基本となる実装で要求された特定のプロパティーを返します。
 Schema getSchema()
          setSchema(Schema schema) メソッドを介して指定された Schema オブジェクトを取得します。
 boolean isNamespaceAware()
          ファクトリが名前空間を認識するパーサーを作成するように設定されているかどうかを示します。
 boolean isValidating()
          構文解析時に XML コンテンツを検証するパーサーを作成するようにファクトリが設定されているかどうかを示します。
 boolean isXIncludeAware()
          XInclude 処理の状態を取得します。
static SAXParserFactory newInstance()
          SAXParserFactory の新しいインスタンスを取得します。
static SAXParserFactory newInstance(String factoryClassName, ClassLoader classLoader)
          SAXParserFactory の新しいインスタンスをクラス名から取得します。
abstract  SAXParser newSAXParser()
          現在設定されているファクトリパラメータを使用して SAXParser の新しいインスタンスを作成します。
abstract  void setFeature(String name, boolean value)
          org.xml.sax.XMLReader の基本となる実装に特定の機能を設定します。
 void setNamespaceAware(boolean awareness)
          このファクトリで作成されたパーサーが XML 名前空間をサポートするように指定します。
 void setSchema(Schema schema)
          このファクトリから作成されたパーサーによって使用される Schema を設定します。
 void setValidating(boolean validating)
          このファクトリで作成されたパーサーが構文解析時にドキュメントの妥当性を検証するように指定します。
 void setXIncludeAware(boolean state)
          XInclude 処理の状態を設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

SAXParserFactory

protected SAXParserFactory()

newInstance() を強制的に使用する protected コンストラクタです。

メソッドの詳細

newInstance

public static SAXParserFactory newInstance()
SAXParserFactory の新しいインスタンスを取得します。この static メソッドは新しいファクトリインスタンスを作成します。 このメソッドは次の順序の検索手順で、ロードする SAXParserFactory 実装クラスを決定します。 アプリケーションが SAXParserFactory への参照を取得すると、ファクトリを使用してパーサーのインスタンスを設定および取得することができます。

トラブルシューティングのヒント

 

jaxp.debug システムプロパティーを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグメッセージを System.err に出力します。

 

DocumentBuilder のロードに問題がある場合、次のようにします。

 java -Djaxp.debug=1 YourProgram ....
 

戻り値:
SAXParserFactory の新しいインスタンス
例外:
FactoryConfigurationError - 実装が使用できないか インスタンス化できない場合

newInstance

public static SAXParserFactory newInstance(String factoryClassName,
                                           ClassLoader classLoader)

SAXParserFactory の新しいインスタンスをクラス名から取得します。この関数は、クラスパスに複数のプロバイダがある場合に便利です。どのプロバイダがロードされるかを指定できるため、アプリケーションをさらに制御できます。

 

アプリケーションが SAXParserFactory への参照を取得すると、ファクトリを使用してパーサーのインスタンスを設定および取得することができます。

トラブルシューティングのヒント

 

jaxp.debug システムプロパティーを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグメッセージを System.err に出力します。

 

問題がある場合、次のようにします。

 java -Djaxp.debug=1 YourProgram ....
 

パラメータ:
factoryClassName - javax.xml.parsers.SAXParserFactory の実装を提供する、完全修飾のファクトリクラス名です。
classLoader - ファクトリクラスのロードに使用される ClassLoadernull の場合は 現在の Thread のコンテキスト classLoader が、ファクトリクラスのロードに使用されます。
戻り値:
SAXParserFactory の新しいインスタンス
例外:
FactoryConfigurationError - factoryClassNamenull、または、 ファクトリクラスがロード、インスタンス化できない場合。
導入されたバージョン:
1.6
関連項目:
newInstance()

newSAXParser

public abstract SAXParser newSAXParser()
                                throws ParserConfigurationException,
                                       SAXException

現在設定されているファクトリパラメータを使用して SAXParser の新しいインスタンスを作成します。

戻り値:
SAXParser の新しいインスタンス
例外:
ParserConfigurationException - 要求された構成を満たす パーサーを生成できない場合
SAXException - SAX エラーの場合

setNamespaceAware

public void setNamespaceAware(boolean awareness)
このファクトリで作成されたパーサーが XML 名前空間をサポートするように指定します。デフォルトでは、この値は false に設定されます。

パラメータ:
awareness - このファクトリで作成されたパーサーが XML 名前空間をサポートする場合は true、そうでない場合は false

setValidating

public void setValidating(boolean validating)
このファクトリで作成されたパーサーが構文解析時にドキュメントの妥当性を検証するように指定します。デフォルトでは、この値は false に設定されます。

ここで言う「検証」とは、XML 勧告で定義されている妥当性を検証するパーサーという意味です。つまり、実質的には DTD 検証を制御するだけということです。ただし、JAXP 1.2 に定義されている従来の 2 つのプロパティーを除きます。

DTD ではなく、W3C XML Schema または RELAX NG などの新しいスキーマ言語を使用する場合は、setValidating(boolean) メソッドを false にしてパーサーを妥当性を検証しない設定にしてから、setSchema(Schema) メソッドでスキーマをパーサーに関連付けます。

パラメータ:
validating - このファクトリで作成されたパーサーが 構文解析時にドキュメントの妥当性を検証する場合は true、そうでない場合は false

isNamespaceAware

public boolean isNamespaceAware()
ファクトリが名前空間を認識するパーサーを作成するように設定されているかどうかを示します。

戻り値:
ファクトリが名前空間を認識するパーサーを 作成するように設定されている場合は true、そうでない場合は false

isValidating

public boolean isValidating()
構文解析時に XML コンテンツを検証するパーサーを作成するようにファクトリが設定されているかどうかを示します。

戻り値:
構文解析時に XML コンテンツを検証するパーサーを作成するように ファクトリが設定されている場合は true、そうでない場合は false

setFeature

public abstract void setFeature(String name,
                                boolean value)
                         throws ParserConfigurationException,
                                SAXNotRecognizedException,
                                SAXNotSupportedException

org.xml.sax.XMLReader の基本となる実装に特定の機能を設定します。 コア機能とコアプロパティーのリストについては、http://www.saxproject.org/ のサイトを参照してください。

 

実装はすべて、XMLConstants.FEATURE_SECURE_PROCESSING 機能をサポートしている必要があります。この機能については次のとおりです。

パラメータ:
name - 設定される機能の名前
value - 設定される機能の値
例外:
ParserConfigurationException - 要求された構成を満たす パーサーを生成できない場合
SAXNotRecognizedException - 基本となる XMLReader が プロパティー名を認識しない場合
SAXNotSupportedException - 基本となる XMLReader は プロパティー名を認識するが、そのプロパティーをサポートしない 場合
NullPointerException - name パラメータが null の場合
関連項目:
XMLReader.setFeature(java.lang.String, boolean)

getFeature

public abstract boolean getFeature(String name)
                            throws ParserConfigurationException,
                                   SAXNotRecognizedException,
                                   SAXNotSupportedException

org.xml.sax.XMLReader の基本となる実装で要求された特定のプロパティーを返します。

パラメータ:
name - 取り出されるプロパティーの名前
戻り値:
要求されたプロパティーの値
例外:
ParserConfigurationException - 要求された構成を満たすパーサーを生成できない場合
SAXNotRecognizedException - 基本となる XMLReader がプロパティー名を認識しない場合
SAXNotSupportedException - 基本となる XMLReader はプロパティー名を認識するが、そのプロパティーをサポートしない場合
関連項目:
XMLReader.getProperty(java.lang.String)

getSchema

public Schema getSchema()
setSchema(Schema schema) メソッドを介して指定された Schema オブジェクトを取得します。

戻り値:
setSchema(Schema) メソッドを介して最後に 設定された Schema オブジェクト、または SAXParserFactory が作成されてからメソッドが呼び出されていない場合は null
例外:
UnsupportedOperationException - 実装がこのメソッドを オーバーライドしない場合
導入されたバージョン:
1.5

setSchema

public void setSchema(Schema schema)

このファクトリから作成されたパーサーによって使用される Schema を設定します。

 

バリデータによってエラーが検出されると、パーサー自身がエラーを検出した場合と同様に、パーサーがそのエラーをユーザー指定の DOMErrorHandler へ報告します。

 

バリデータによって警告、エラー、重大なエラーが検出されると、パーサーは自身がこれらのエラーを検出した場合と同様にこれらを処理する必要があります。つまり、ユーザー指定の ErrorHandler が設定されている場合は、これらのエラーを受け取り、そうでない場合は実装固有のデフォルトのエラー処理規則に従って処理される必要があります。  

バリデータは SAX イベント ストリームを変更することがあり (たとえば、ドキュメントから失われていたデフォルト値を追加するなど)、パーサーはこれらの変更されたイベントストリームをアプリケーションが確実に受け取るようにする役割を持ちます。

 

最初に、Schema として null が設定されます。

 

この処理は isValidating() メソッドが false を返した場合でも有効です。  

http://java.sun.com/xml/jaxp/properties/schemaSource プロパティーまたは http://java.sun.com/xml/jaxp/properties/schemaLanguage プロパティーを null 以外の Schema オブジェクトと一緒に使用するとエラーになります。このような設定では、これらのプロパティーが SAXParser に設定されていると SAXException 例外が発生します。

実装時の注意

パーサーは、あらゆる Schema 実装で動作する必要があります。ただし、パーサーおよびスキーマが仕様に記載されている結果を出すかぎり、実装固有のカスタム機構を使用できます。

パラメータ:
schema - 使用する Schema またはスキーマを削除する場合は null
例外:
UnsupportedOperationException - 実装がこのメソッドを オーバーライドしない場合
導入されたバージョン:
1.5

setXIncludeAware

public void setXIncludeAware(boolean state)

XInclude 処理の状態を設定します。

 

ドキュメントインスタンスに XInclude マークアップが見つかった場合、「XML Inclusions (XInclude) Version 1.0」に指定されているとおりに処理する必要があります。

 

XInclude 処理のデフォルトは false に設定されます。

パラメータ:
state - XInclude 処理を true または false に設定する
例外:
UnsupportedOperationException - 実装がこのメソッドを オーバーライドしない場合
導入されたバージョン:
1.5

isXIncludeAware

public boolean isXIncludeAware()

XInclude 処理の状態を取得します。

戻り値:
XInclude 処理の現在の状態
例外:
UnsupportedOperationException - 実装がこのメソッドを オーバーライドしない場合
導入されたバージョン:
1.5

JavaTM Platform
Standard Ed. 6

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

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