public abstract class SAXParserFactory extends Object
修飾子 | コンストラクタと説明 |
---|---|
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処理の状態を設定します。
|
protected SAXParserFactory()
newInstance()
を強制的に使用するprotectedコンストラクタです。
public static SAXParserFactory newInstance()
SAXParserFactory
の新しいインスタンスを取得します。このstaticメソッドは新しいファクトリ・インスタンスを作成します。このメソッドは次の順序のルックアップ手順で、ロードするSAXParserFactory
実装クラスを判定します。
javax.xml.parsers.SAXParserFactory
システム・プロパティを使用する。
java.util.Properties
形式であり、上記のように定義されたシステム・プロパティであるキーを持つ実装クラスの完全修飾名を含む。jaxp.propertiesファイルはJAXP実装によって1回だけ読み込まれ、その値がその後の使用のためキャッシュされる。最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。最初に読み込まれたあと、jaxp.propertiesのプロパティの値を変更することはできない。
ServiceLoader
クラスで定義されているサービス・プロバイダのロード機能を使用して、デフォルトのロード・メカニズムによってサービスの実装の特定およびロードを試みる。サービス・プロバイダのロード機能は、現在のスレッドのコンテキスト・クラス・ローダーを使用してサービスのロードを試みる。コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。
SAXParserFactory
への参照を取得すると、ファクトリを使用してパーサーのインスタンスを構成および取得できます。
jaxp.debug
システム・プロパティを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグ・メッセージをSystem.err
に出力します。
SAXParser
のロードに問題がある場合、次のようにします。
java -Djaxp.debug=1 YourProgram ....
FactoryConfigurationError
- サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合。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
、またはファクトリ・クラスをロードまたはインスタンス化できない場合。newInstance()
public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException
現在構成されているファクトリ・パラメータを使用してSAXParserの新しいインスタンスを作成します。
ParserConfigurationException
- 要求された構成を満たすパーサーを生成できない場合。SAXException
- SAXエラーの場合。public void setNamespaceAware(boolean awareness)
false
に設定されます。awareness
- このコードで作成されたパーサーがXML名前空間をサポートする場合はtrue、そうでない場合はfalse。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。public boolean isNamespaceAware()
public boolean isValidating()
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)
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)
public Schema getSchema()
setSchema(Schema schema)
メソッドによって指定されたSchema
オブジェクトを取得します。setSchema(Schema)
メソッドを介して最後に設定されたSchema
オブジェクト、またはSAXParserFactory
が作成されてからメソッドが呼び出されていない場合はnull。UnsupportedOperationException
- 実装がこのメソッドをオーバーライドしない場合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
- 実装がこのメソッドをオーバーライドしない場合public void setXIncludeAware(boolean state)
XInclude処理の状態を設定します。
ドキュメント・インスタンスにXIncludeマークアップが見つかった場合、「XML Inclusions (XInclude) Version 1.0」に指定されているとおりに処理する必要があります。
XInclude処理のデフォルトはfalse
に設定されます。
state
- XInclude処理をtrue
またはfalse
に設定するUnsupportedOperationException
- 実装がこのメソッドをオーバーライドしない場合public boolean isXIncludeAware()
XInclude処理の状態を取得します。
UnsupportedOperationException
- 実装がこのメソッドをオーバーライドしない場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.