|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.xml.parsers.DocumentBuilderFactory
public abstract class DocumentBuilderFactory
アプリケーションで XML ドキュメントから DOM オブジェクトツリーを生成するパーサーを取得できるファクトリ API を定義します。
コンストラクタの概要 | |
---|---|
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 処理の状態を設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
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、そうでない場合は falsepublic void setValidating(boolean validating)
false
に設定されます。
ここで言う「検証」とは、XML 勧告で定義されている妥当性を検証するパーサーという意味です。つまり、実質的には DTD 検証を制御するだけということです。ただし、JAXP 1.2 に定義されている従来の 2 つのプロパティーを除きます。
DTD ではなく、W3C XML Schema または RELAX NG などの新しいスキーマ言語を使用する場合は、setValidating(boolean)
メソッドを false
にしてパーサーを妥当性を検証しない設定にしてから、setSchema(Schema)
メソッドでスキーマをパーサーに関連付けます。
validating
- 作成されたパーサーが構文解析時にドキュメントの妥当性を 検証する場合は true、そうでない場合は falsepublic void setIgnoringElementContentWhitespace(boolean whitespace)
false
に設定されます。
whitespace
- 作成されたパーサーが XML ドキュメントの構文解析時に 要素の内容の空白を排除する必要がある場合は true、 そうでない場合は falsepublic void setExpandEntityReferences(boolean expandEntityRef)
true
に設定されます。
expandEntityRef
- 作成されたパーサーがエンティティー参照ノードを展開する場合は true、そうでない場合は falsepublic void setIgnoringComments(boolean ignoreComments)
このコードで作成されたパーサーがコメントを無視するように指定します。デフォルトでは、この値は false
に設定されます。
ignoreComments
- 処理時にコメントを無視する boolean
値public void setCoalescing(boolean coalescing)
false
に設定されます。
coalescing
- 作成されたパーサーが CDATA ノードを Text ノードに変換し、 それを隣接 (存在する場合) Text ノードに追加する場合は true、 そうでない場合は falsepublic 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
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
を設定します。
バリデータによってエラーが検出されると、パーサー自身がエラーを検出した場合と同様に、パーサーがそのエラーをユーザー指定の DOMErrorHandler
へ報告します。
バリデータによってエラーが検出されると、パーサー自身がエラーを検出した場合と同様に、パーサーがそのエラーをユーザー指定の ErrorHandler
へ報告します。エラーハンドラが設定されていない場合は、そのエラーは無視されるか、スローされます。つまり、ユーザー指定の ErrorHandler
が設定されている場合は、これらのエラーを受け取り、そうでない場合は実装固有のデフォルトのエラー処理規則に従って処理される必要があります。
バリデータは解析の結果を変更することがあり (たとえば、ドキュメントから失われていたデフォルト値を追加するなど)、パーサー側で変更済みの DOM ツリーをアプリケーションが受け取ることを確認する必要があります。
最初に、Schema
として null が設定されます。
この処理は 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
- 実装がこのメソッドを オーバーライドしない場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。