public abstract class DocumentBuilderFactory extends Object
修飾子 | コンストラクタと説明 |
---|---|
protected |
DocumentBuilderFactory()
インスタンス化を妨げる protected コンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
abstract Object |
getAttribute(String name)
ユーザーがベースとなる実装の特定の属性を取り出すことができるようにします。
|
abstract boolean |
getFeature(String name)
名前が付けられた機能の状態を取得します。
|
Schema |
getSchema()
setSchema(Schema schema) メソッドによって指定された Schema オブジェクトを取得します。 |
boolean |
isCoalescing()
CDATA ノードを Text ノードに変換し、それを隣接 (存在する場合) Text ノードに追加するパーサーを作成するようにファクトリが構成されているかどうかを示します。
|
boolean |
isExpandEntityReferences()
エンティティー参照ノードを展開するパーサーを作成するようにファクトリが構成されているかどうかを示します。
|
boolean |
isIgnoringComments()
コメントを無視するパーサーを作成するようにファクトリが構成されているかどうかを示します。
|
boolean |
isIgnoringElementContentWhitespace()
要素の内容の無視できる空白を無視するパーサーを作成するようにファクトリが構成されているかどうかを示します。
|
boolean |
isNamespaceAware()
ファクトリが名前空間を認識するパーサーを作成するように構成されているかどうかを示します。
|
boolean |
isValidating()
構文解析時に XML コンテンツを検証するパーサーを作成するようにファクトリが構成されているかどうかを示します。
|
boolean |
isXIncludeAware()
XInclude 処理の状態を取得します。
|
abstract DocumentBuilder |
newDocumentBuilder()
現在構成されているパラメータを使用して
DocumentBuilder の新しいインスタンスを作成します。 |
static DocumentBuilderFactory |
newInstance()
DocumentBuilderFactory の新しいインスタンスを取得します。 |
static DocumentBuilderFactory |
newInstance(String factoryClassName, ClassLoader classLoader)
クラス名から
DocumentBuilderFactory の新しいインスタンスを取得します。 |
abstract void |
setAttribute(String name, Object value)
ユーザーがベースとなる実装に特定の属性を設定できるようにします。
|
void |
setCoalescing(boolean coalescing)
このファクトリで作成されたパーサーが CDATA ノードを Text ノードに変換し、それを隣接 (存在する場合) Text ノードに追加するように指定します。
|
void |
setExpandEntityReferences(boolean expandEntityRef)
このファクトリで作成されたパーサーがエンティティー参照ノードを展開するように指定します。
|
abstract void |
setFeature(String name, boolean value)
このファクトリによって生成された
DocumentBuilderFactory および DocumentBuilder の機能を設定します。 |
void |
setIgnoringComments(boolean ignoreComments)
このコードで作成されたパーサーがコメントを無視するように指定します。
|
void |
setIgnoringElementContentWhitespace(boolean whitespace)
このファクトリで作成されたパーサーが、XML ドキュメントの構文解析時に要素の内容の空白 (大まかに「無視できる空白」と呼ばれることがある) を排除するように指定します (XML Rec 2.10 を参照)。
|
void |
setNamespaceAware(boolean awareness)
このファクトリで作成されたパーサーが XML 名前空間をサポートするように指定します。
|
void |
setSchema(Schema schema)
このファクトリから作成されたパーサーによって使用される
Schema を設定します。 |
void |
setValidating(boolean validating)
このファクトリで作成されたパーサーが構文解析時にドキュメントの妥当性を検証するように指定します。
|
void |
setXIncludeAware(boolean state)
XInclude 処理の状態を設定します。
|
protected DocumentBuilderFactory()
インスタンス化を妨げる protected コンストラクタです。newInstance()
を使用してください。
public static DocumentBuilderFactory newInstance()
DocumentBuilderFactory
の新しいインスタンスを取得します。この static メソッドは新しいファクトリインスタンスを作成します。このメソッドは次の順序の検索手順で、ロードする DocumentBuilderFactory
実装クラスを決定します。
javax.xml.parsers.DocumentBuilderFactory
システムプロパティーを使用する。
java.util.Properties
形式であり、上記のように定義されたシステムプロパティーであるキーを持つ実装クラスの完全指定名を含む。
jaxp.properties ファイルは JAXP 実装によって 1 回だけ読み込まれ、その値がその後の使用のためキャッシュされる。最初の読み込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。最初に読み込まれたあと、jaxp.properties のプロパティーの値を変更することはできない。
META-INF/services/javax.xml.parsers.DocumentBuilderFactory
ファイルからクラス名を検索する。
DocumentBuilderFactory
インスタンスをプラットフォームとする。
DocumentBuilderFactory
への参照を取得すると、ファクトリを使用してパーサーのインスタンスを構成および取得できます。
jaxp.debug
システムプロパティーを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグメッセージを System.err
に出力します。
DocumentBuilder
のロードに問題がある場合、次のようにします。
java -Djaxp.debug=1 YourProgram ....
DocumentBuilderFactory
の新しいインスタンスFactoryConfigurationError
- 実装が使用できないかインスタンス化できない場合。public static DocumentBuilderFactory newInstance(String factoryClassName, ClassLoader classLoader)
クラス名から DocumentBuilderFactory
の新しいインスタンスを取得します。この関数は、クラスパスに複数のプロバイダがある場合に便利です。どのプロバイダがロードされるかを指定できるため、アプリケーションをさらに制御できます。
アプリケーションが DocumentBuilderFactory
への参照を取得すると、ファクトリを使用してパーサーのインスタンスを構成および取得できます。
jaxp.debug
システムプロパティーを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグメッセージを System.err
に出力します。
問題がある場合、次のようにします。
java -Djaxp.debug=1 YourProgram ....
factoryClassName
- javax.xml.parsers.DocumentBuilderFactory
の実装を提供する完全指定のファクトリクラス名。classLoader
- ファクトリクラスのロードに使用される ClassLoader
。null
の場合は、現在の Thread
のコンテキスト classLoader が、ファクトリクラスのロードに使用されます。DocumentBuilderFactory
の新しいインスタンスFactoryConfigurationError
- factoryClassName
が null
、またはファクトリクラスをロードまたはインスタンス化できない場合。newInstance()
public abstract DocumentBuilder newDocumentBuilder() throws ParserConfigurationException
DocumentBuilder
の新しいインスタンスを作成します。ParserConfigurationException
- 要求された構成を満たす DocumentBuilder を作成できない場合。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 void setIgnoringElementContentWhitespace(boolean whitespace)
false
に設定されます。whitespace
- 作成されたパーサーが XML ドキュメントの構文解析時に要素の内容の空白を排除する必要がある場合は true、そうでない場合は false。public void setExpandEntityReferences(boolean expandEntityRef)
true
に設定されます。expandEntityRef
- 作成されたパーサーがエンティティー参照ノードを展開する場合は true、そうでない場合は false。public void setIgnoringComments(boolean ignoreComments)
このコードで作成されたパーサーがコメントを無視するように指定します。デフォルトでは、この値は false
に設定されます。
ignoreComments
- 処理時にコメントを無視する boolean
値public void setCoalescing(boolean coalescing)
false
に設定されます。coalescing
- 作成されたパーサーが CDATA ノードを Text ノードに変換し、それを隣接 (存在する場合) Text ノードに追加する場合は true、そうでない場合は false。public boolean isNamespaceAware()
public boolean isValidating()
public boolean isIgnoringElementContentWhitespace()
public boolean isExpandEntityReferences()
public boolean isIgnoringComments()
public boolean isCoalescing()
public abstract void setAttribute(String name, Object value) throws IllegalArgumentException
JAXP 1.5 またはそれ以降を実装する実装はすべて、XMLConstants.ACCESS_EXTERNAL_DTD
および XMLConstants.ACCESS_EXTERNAL_SCHEMA
プロパティーをサポートしている必要があります。
XMLConstants.ACCESS_EXTERNAL_DTD
プロパティーを設定すると、外部 DTD および外部エンティティー参照へのアクセスが、そのプロパティーで指定されたプロトコルに制限されます。このプロパティーの制限が原因で構文解析中にアクセスが拒否された場合は、DocumentBuilder
で定義された解析メソッドによって SAXException
がスローされます。
XMLConstants.ACCESS_EXTERNAL_SCHEMA
プロパティーを設定すると、schemaLocation 属性によって設定された外部スキーマへのアクセスが、そのプロパティーで指定されたプロトコルに制限されます。このプロパティーの制限が原因で構文解析中にアクセスが拒否された場合は、DocumentBuilder
で定義された解析メソッドによって SAXException
がスローされます。
name
- 属性の名前。value
- 属性の値。IllegalArgumentException
- ベースとなる実装が属性を認識しない場合にスローされる。public abstract Object getAttribute(String name) throws IllegalArgumentException
name
- 属性の名前。IllegalArgumentException
- ベースとなる実装が属性を認識しない場合にスローされる。public abstract void setFeature(String name, boolean value) throws ParserConfigurationException
このファクトリによって生成された DocumentBuilderFactory
および DocumentBuilder
の機能を設定します。
機能名は完全指定 URI
です。実装が独自の機能を定義することもできます。生成するこの DocumentBuilderFactory
または DocumentBuilder
がその機能をサポートできない場合は、ParserConfigurationException
がスローされます。DocumentBuilderFactory
は機能の値を表示できますが、その状態を変更することはできません。
実装はすべて、XMLConstants.FEATURE_SECURE_PROCESSING
機能をサポートしている必要があります。この機能については次のとおりです。
true
: 実装は実装限界に準拠する XML 処理を制限します。例には、エンティティー拡張制限や大容量のリソースを消費する XML スキーマが含まれます。セキュリティー上の理由から XML 処理が制限される場合は、登録済みの ErrorHandler.fatalError(SAXParseException exception)
へ呼び出しを介して報告されます。DocumentBuilder.setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
を参照してください。
false
: 実装は実装限界に関係なく、XML 仕様に従って XML を処理します。
name
- 機能名。value
- 機能の状態が true
か false
か。ParserConfigurationException
- この DocumentBuilderFactory
またはそれによって作成される DocumentBuilder
がこの機能をサポートできない場合。NullPointerException
- name
パラメータが null である場合。public abstract boolean getFeature(String name) throws ParserConfigurationException
名前が付けられた機能の状態を取得します。
機能名は完全指定 URI
です。実装が独自の機能を定義することもできます。生成する DocumentBuilderFactory
または DocumentBuilder
がその機能をサポートできない場合は、ParserConfigurationException
がスローされます。DocumentBuilderFactory
は機能の値を表示できますが、その状態を変更することはできません。
name
- 機能名。ParserConfigurationException
- この DocumentBuilderFactory
またはそれによって作成される DocumentBuilder
がこの機能をサポートできない場合。public Schema getSchema()
setSchema(Schema schema)
メソッドによって指定された Schema
オブジェクトを取得します。setSchema(Schema)
メソッドを介して最後に設定された Schema
オブジェクト、または DocumentBuilderFactory
が作成されてからメソッドが呼び出されていない場合は null。UnsupportedOperationException
- 実装がこのメソッドをオーバーライドしない場合。public void setSchema(Schema schema)
このファクトリから作成されたパーサーによって使用される Schema
を設定します。
Schema
が null 以外の場合、パーサーは、情報をアプリケーションに渡す前に、ドキュメントを検証するために作成されたバリデータを使用します。
バリデータによってエラーが検出されると、パーサー自身がエラーを検出した場合と同様に、パーサーがそのエラーをユーザー指定の ErrorHandler
へ報告します (エラーハンドラが設定されていない場合は、そのエラーは無視されるか、スローされます)。つまり、ユーザー指定の ErrorHandler
が設定されている場合は、これらのエラーを受け取り、そうでない場合は実装固有のデフォルトのエラー処理規則に従って処理される必要があります。
バリデータは解析の結果を変更することがあり (たとえば、ドキュメントから失われていたデフォルト値を追加するなど)、パーサー側で変更済みの DOM ツリーをアプリケーションが受け取ることを確認する必要があります。
最初に、null が Schema
として設定されます。
この処理は isValidating()
メソッドが false
を返した場合でも有効です。
http://java.sun.com/xml/jaxp/properties/schemaSource
プロパティーまたは http://java.sun.com/xml/jaxp/properties/schemaLanguage
プロパティーを Schema
オブジェクトと一緒に使用するとエラーになります。newDocumentBuilder()
の呼び出し時に、そのような構成によって ParserConfigurationException
例外が発生します。
パーサーは、あらゆる 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, 2013, Oracle and/or its affiliates. All rights reserved.