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.