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のプロパティの値を変更することはできない。
ServiceLoader
クラスで定義されているサービスプロバイダのロード機能を使用して、デフォルトのロード・メカニズムによってサービスの実装の特定およびロードを試みます。サービスプロバイダのロード機能は、現在のスレッドのコンテキスト・クラス・ローダーを使用してサービスのロードを試みます。コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。
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, 2014, Oracle and/or its affiliates. All rights reserved.