- java.lang.Object
-
- javax.xml.parsers.SAXParserFactory
-
public abstract class SAXParserFactory extends Object
アプリケーションがSAXベースのパーサーを構成および取得してXMLドキュメントを構文解析できるようにするファクトリAPIを定義します。- 導入されたバージョン:
- 1.4
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
SAXParserFactory()
newInstance()
を強制的に使用するprotectedコンストラクタです。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 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
newDefaultInstance()
SAXParserFactory
組み込みシステムのデフォルト実装の新しいインスタンスを作成します。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処理の状態を設定します。
-
-
-
コンストラクタの詳細
-
SAXParserFactory
protected SAXParserFactory()
newInstance()
を強制的に使用するprotectedコンストラクタです。
-
-
メソッドの詳細
-
newDefaultInstance
public static SAXParserFactory newDefaultInstance()
SAXParserFactory
組み込みシステムのデフォルト実装の新しいインスタンスを作成します。- 戻り値:
SAXParserFactory
組み込みシステムのデフォルト実装の新しいインスタンス。- 導入されたバージョン:
- 9
-
newInstance
public static SAXParserFactory newInstance()
SAXParserFactory
の新しいインスタンスを取得します。 このstaticメソッドは新しいファクトリ・インスタンスを作成します。このメソッドは次の順序のルックアップ手順で、ロードするSAXParserFactory
実装クラスを判定します。-
javax.xml.parsers.SAXParserFactory
システム・プロパティを使用する。 -
構成ファイル"jaxp.properties"を使用します。 このファイルは標準の
Properties
形式であり、通常Javaインストールのconf
ディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。jaxp.propertiesファイルはJAXP実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 最初に読み込まれたあと、jaxp.propertiesのプロパティの値を変更することはできない。
-
ServiceLoader
クラスで定義されているサービス・プロバイダ・ローディング機能を使用して、デフォルトのロード・メカニズムを使用してサービスの実装を特定してロード: サービス・プロバイダ・ローディング機能は、現在のスレッド・コンテキスト・クラス・ローダーを使用してサービスをロードしようとします。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。 -
それ以外の場合は、system-default実装が返されます。
アプリケーションが
SAXParserFactory
への参照を取得すると、ファクトリを使用してパーサーのインスタンスを構成および取得できます。トラブルシューティングのヒント
jaxp.debug
システム・プロパティを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグ・メッセージをSystem.err
に出力します。SAXParser
のロードに問題がある場合、次のようにします。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
- ファクトリ・クラスのロードに使用されるClassLoader
。null
の場合は、現在のThread
のコンテキストclassLoaderが、ファクトリ・クラスのロードに使用されます。- 戻り値:
SAXParserFactory
の新しいインスタンス- 例外:
FactoryConfigurationError
-factoryClassName
がnull
、またはファクトリ・クラスをロードまたはインスタンス化できない場合。- 導入されたバージョン:
- 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
機能をサポートしている必要があります。 この機能については次のとおりです。-
true
の場合、実装は実装限界に準拠するXML処理を制限します。 例は、エンティティ拡張制限や大容量のリソースを消費するXMLスキーマなど。 セキュリティ上の理由からXML処理が制限される場合は、登録済みのErrorHandler.fatalError(SAXParseException exception)
へ呼出しを介して報告されます。 ハンドラ仕様については、SAXParser
parse
メソッドを参照してください。 -
機能が
false
の場合、実装は、実装限界にかまわず、XML仕様に従ってXMLを処理します。
- パラメータ:
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
を設定します。Schema
がnull以外の場合、パーサーは、情報をアプリケーションに渡す前に、ドキュメントを検証するために作成されたバリデータを使用します。バリデータによって警告、エラー、重大なエラーが検出されると、パーサーは自身がこれらのエラーを検出した場合と同様にこれらを処理する必要があります。 つまり、ユーザー指定の
ErrorHandler
が設定されている場合は、これらのエラーを受け取り、そうでない場合は実装固有のデフォルトのエラー処理規則に従って処理される必要があります。バリデータはSAXイベント・ストリームを変更することがあり(たとえば、ドキュメントから失われていたデフォルト値を追加するなど)、パーサーはこれらの変更されたイベント・ストリームをアプリケーションが確実に受け取るようにする役割を持ちます。
最初に、
null
がSchema
として設定されます。この処理は
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
-
-