JavaTM 2 Platform
Standard Ed. 5.0

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 の新しいインスタンスを取得します。
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 - 実装が使用できないかインスタンス化できない場合

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 - 下位互換性のため、JAXP の以前のバージョンを使用している場合に、この例外がスローされる
導入されたバージョン:
1.5

setSchema

public void setSchema(Schema schema)

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

Schema が null 以外の場合、パーサはこれから作成されたバリデータを使用して、アプリケーションに情報を渡す前にドキュメントを検証します。

バリデータによって警告、エラー、重大なエラーが検出されると、パーサは自身がこれらのエラーを検出した場合と同様にこれらを処理する必要があります。つまり、ユーザ指定の 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 - 下位互換性のため、JAXP の以前のバージョンを使用している場合に、この例外がスローされる
導入されたバージョン:
1.5

setXIncludeAware

public void setXIncludeAware(boolean state)

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

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

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

パラメータ:
state - XInclude 処理を true または false に設定する
例外:
UnsupportedOperationException - 下位互換性のため、JAXP の以前のバージョンを使用している場合に、この例外がスローされる
導入されたバージョン:
1.5

isXIncludeAware

public boolean isXIncludeAware()

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

戻り値:
XInclude 処理の現在の状態
例外:
UnsupportedOperationException - 下位互換性のため、JAXP の以前のバージョンを使用している場合に、この例外がスローされる
導入されたバージョン:
1.5

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 も参照してください。