クラス XmlBeanDefinitionReader
- 実装されているすべてのインターフェース:
BeanDefinitionReader, EnvironmentCapable
BeanDefinitionDocumentReader インターフェースの実装に委譲します。 通常、DefaultListableBeanFactory または GenericApplicationContext に適用されます。
このクラスは DOM ドキュメントをロードし、それに BeanDefinitionDocumentReader を適用します。ドキュメントリーダーは各 Bean 定義を特定の Bean ファクトリに登録し、後者の BeanDefinitionRegistry インターフェースの実装と通信します。
- 導入:
- 26.11.2003
- 作成者:
- Juergen Hoeller, Rob Harrop, Chris Beams, Sam Brannen
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final int検証モードが自動的に検出されることを示します。static final intDTD 検証を使用する必要があることを示します。static final int検証を無効にする必要があることを示します。static final intXSD 検証を使用する必要があることを示します。クラス AbstractBeanDefinitionReader から継承されたフィールド
loggerコンストラクターの概要
コンストラクターコンストラクター説明指定された Bean ファクトリの新しい XmlBeanDefinitionReader を作成します。メソッドのサマリー
修飾子と型メソッド説明protected BeanDefinitionDocumentReaderXML ドキュメントから実際に Bean 定義を読み取るために使用するBeanDefinitionDocumentReaderを作成します。protected NamespaceHandlerResolver何も指定されていない場合に使用されるNamespaceHandlerResolverのデフォルト実装を作成します。createReaderContext(Resource resource) ドキュメントリーダーに渡すXmlReaderContextを作成します。protected intdetectValidationMode(Resource resource) 提供されているResourceによって識別される XML ファイルに対して実行する検証の種類を検出します。protected intdoLoadBeanDefinitions(InputSourceSE inputSource, Resource resource) 指定された XML ファイルから Bean 定義を実際にロードします。protected DocumentSEdoLoadDocument(InputSourceSE inputSource, Resource resource) 設定された DocumentLoader を使用して、指定されたドキュメントを実際にロードします。protected EntityResolverSE使用する EntityResolver を返し、何も指定されていない場合はデフォルトのリゾルバーを構築します。以前に設定されていない場合は、デフォルトの NamespaceHandlerResolver を遅延作成します。int使用する検証モードを返します。protected intgetValidationModeForResource(Resource resource) 指定されたResourceの検証モードを決定します。booleanXML パーサーが XML 名前空間を認識する必要があるかどうかを返します。intloadBeanDefinitions(Resource resource) 指定された XML ファイルから Bean 定義をロードします。intloadBeanDefinitions(EncodedResource encodedResource) 指定された XML ファイルから Bean 定義をロードします。intloadBeanDefinitions(InputSourceSE inputSource) 指定された XML ファイルから Bean 定義をロードします。intloadBeanDefinitions(InputSourceSE inputSource, @Nullable StringSE resourceDescription) 指定された XML ファイルから Bean 定義をロードします。intregisterBeanDefinitions(DocumentSE doc, Resource resource) 指定された DOM ドキュメントに含まれる Bean 定義を登録します。voidsetDocumentLoader(@Nullable DocumentLoader documentLoader) 使用するDocumentLoaderを指定します。voidsetDocumentReaderClass(ClassSE<? extends BeanDefinitionDocumentReader> documentReaderClass) 使用するBeanDefinitionDocumentReader実装を指定します。これは、XML Bean 定義ドキュメントの実際の読み取りを担当します。voidsetEntityResolver(@Nullable EntityResolverSE entityResolver) 解析に使用される SAX エンティティリゾルバーを設定します。voidsetErrorHandler(ErrorHandlerSE errorHandler) XML 解析エラーと警告をカスタム処理するためのorg.xml.sax.ErrorHandlerインターフェースの実装を設定します。voidsetEventListener(@Nullable ReaderEventListener eventListener) 使用するReaderEventListenerを指定します。voidsetNamespaceAware(boolean namespaceAware) XML パーサーが XML 名前空間を認識する必要があるかどうかを設定します。voidsetNamespaceHandlerResolver(@Nullable NamespaceHandlerResolver namespaceHandlerResolver) 使用するNamespaceHandlerResolverを指定します。voidsetProblemReporter(@Nullable ProblemReporter problemReporter) 使用するProblemReporterを指定します。voidsetSourceExtractor(@Nullable SourceExtractor sourceExtractor) 使用するSourceExtractorを指定します。voidsetValidating(boolean validating) XML 検証を使用するかどうかを設定します。voidsetValidationMode(int validationMode) 使用する検証モードを設定します。voidsetValidationModeName(StringSE validationModeName) 名前で使用する検証モードを設定します。
フィールドの詳細
VALIDATION_NONE
public static final int VALIDATION_NONE検証を無効にする必要があることを示します。- 関連事項:
VALIDATION_AUTO
public static final int VALIDATION_AUTO検証モードが自動的に検出されることを示します。- 関連事項:
VALIDATION_DTD
public static final int VALIDATION_DTDDTD 検証を使用する必要があることを示します。- 関連事項:
VALIDATION_XSD
public static final int VALIDATION_XSDXSD 検証を使用する必要があることを示します。- 関連事項:
コンストラクターの詳細
XmlBeanDefinitionReader
指定された Bean ファクトリの新しい XmlBeanDefinitionReader を作成します。- パラメーター:
registry- Bean 定義を BeanDefinitionRegistry の形式でロードする BeanFactory
メソッドの詳細
setValidating
public void setValidating(boolean validating) XML 検証を使用するかどうかを設定します。デフォルトはtrueです。この方法では、検証がオフになっている場合にネームスペースの認識をオンに切り替え、そのようなシナリオでもスキーマのネームスペースを適切に処理します。
- 関連事項:
setValidationModeName
名前で使用する検証モードを設定します。デフォルトはVALIDATION_AUTOです。- 関連事項:
setValidationMode
public void setValidationMode(int validationMode) 使用する検証モードを設定します。デフォルトはVALIDATION_AUTOです。これは検証自体をアクティブ化または非アクティブ化するだけであることに注意してください。スキーマファイルの検証をオフに切り替える場合は、スキーマ名前空間のサポートを明示的にアクティブにする必要がある場合があります。
setNamespaceAware(boolean)を参照してください。getValidationMode
public int getValidationMode()使用する検証モードを返します。setNamespaceAware
public void setNamespaceAware(boolean namespaceAware) XML パーサーが XML 名前空間を認識する必要があるかどうかを設定します。デフォルトは "false" です。これは通常、スキーマ検証がアクティブな場合は必要ありません。ただし、検証なしでは、スキーマの名前空間を適切に処理するために、これを "true" に切り替える必要があります。
isNamespaceAware
public boolean isNamespaceAware()XML パーサーが XML 名前空間を認識する必要があるかどうかを返します。setProblemReporter
使用するProblemReporterを指定します。デフォルトの実装は
FailFastProblemReporterで、フェイルファスト動作を示します。外部ツールは、エラーと警告を照合してツール UI に表示する代替実装を提供できます。setEventListener
使用するReaderEventListenerを指定します。デフォルトの実装はすべてのイベント通知を破棄する EmptyReaderEventListener です。外部ツールは、BeanFactory に登録されているコンポーネントを監視するための代替実装を提供できます。
setSourceExtractor
使用するSourceExtractorを指定します。デフォルトの実装は
NullSourceExtractorで、これは単にnullをソースオブジェクトとして返します。これは、通常のランタイム実行中に、Bean 構成メタデータに追加のソースメタデータがアタッチされないことを意味します。setNamespaceHandlerResolver
public void setNamespaceHandlerResolver(@Nullable NamespaceHandlerResolver namespaceHandlerResolver) 使用するNamespaceHandlerResolverを指定します。何も指定されていない場合、デフォルトのインスタンスは
createDefaultNamespaceHandlerResolver()を介して作成されます。setDocumentLoader
使用するDocumentLoaderを指定します。デフォルトの実装は
DefaultDocumentLoaderで、JAXP を使用してDocumentSE インスタンスをロードします。setEntityResolver
解析に使用される SAX エンティティリゾルバーを設定します。デフォルトでは、
ResourceEntityResolverが使用されます。たとえば、特定のベースパスに関連するカスタムエンティティ解決のためにオーバーライドできます。getEntityResolver
使用する EntityResolver を返し、何も指定されていない場合はデフォルトのリゾルバーを構築します。setErrorHandler
XML 解析エラーと警告をカスタム処理するためのorg.xml.sax.ErrorHandlerインターフェースの実装を設定します。設定されていない場合、デフォルトの SimpleSaxErrorHandler が使用され、ビュークラスのロガーインスタンスを使用して警告をログに記録し、XML 変換を中止するためにエラーを再スローします。
- 関連事項:
setDocumentReaderClass
public void setDocumentReaderClass(ClassSE<? extends BeanDefinitionDocumentReader> documentReaderClass) 使用するBeanDefinitionDocumentReader実装を指定します。これは、XML Bean 定義ドキュメントの実際の読み取りを担当します。デフォルトは
DefaultBeanDefinitionDocumentReaderです。- パラメーター:
documentReaderClass- 目的の BeanDefinitionDocumentReader 実装クラス
loadBeanDefinitions
指定された XML ファイルから Bean 定義をロードします。- パラメーター:
resource- XML ファイルのリソース記述子- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合
loadBeanDefinitions
指定された XML ファイルから Bean 定義をロードします。- パラメーター:
encodedResource- XML ファイルのリソース記述子。ファイルの解析に使用するエンコーディングを指定できます- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合
loadBeanDefinitions
指定された XML ファイルから Bean 定義をロードします。- パラメーター:
inputSource- 読み込む SAX InputSource- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合
loadBeanDefinitions
public int loadBeanDefinitions(InputSourceSE inputSource, @Nullable StringSE resourceDescription) throws BeanDefinitionStoreException 指定された XML ファイルから Bean 定義をロードします。- パラメーター:
inputSource- 読み込む SAX InputSourceresourceDescription- リソースの説明 (nullまたは空にすることができます)- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合
doLoadBeanDefinitions
protected int doLoadBeanDefinitions(InputSourceSE inputSource, Resource resource) throws BeanDefinitionStoreException 指定された XML ファイルから Bean 定義を実際にロードします。- パラメーター:
inputSource- 読み込む SAX InputSourceresource- XML ファイルのリソース記述子- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合- 関連事項:
doLoadDocument
protected DocumentSE doLoadDocument(InputSourceSE inputSource, Resource resource) throws ExceptionSE 設定された DocumentLoader を使用して、指定されたドキュメントを実際にロードします。- パラメーター:
inputSource- 読み込む SAX InputSourceresource- XML ファイルのリソース記述子- 戻り値:
- DOM ドキュメント
- 例外:
ExceptionSE- DocumentLoader からスローされたとき- 関連事項:
getValidationModeForResource
指定されたResourceの検証モードを決定します。明示的な検証モードが構成されていない場合、検証モードは指定されたリソースからdetectedを取得します。VALIDATION_AUTO以外が設定されている場合でも、検証モードを完全に制御する場合は、このメソッドをオーバーライドします。- 関連事項:
detectValidationMode
提供されたResourceによって識別される XML ファイルに対して実行する検証の種類を検出します。ファイルにDOCTYPE定義がある場合、DTD 検証が使用されます。それ以外の場合、XSD 検証が想定されます。VALIDATION_AUTOモードの解決をカスタマイズする場合は、このメソッドをオーバーライドします。registerBeanDefinitions
public int registerBeanDefinitions(DocumentSE doc, Resource resource) throws BeanDefinitionStoreException 指定された DOM ドキュメントに含まれる Bean 定義を登録します。loadBeanDefinitionsによって呼び出されます。パーサークラスの新しいインスタンスを作成し、そのインスタンスで
registerBeanDefinitionsを呼び出します。- パラメーター:
doc- DOM ドキュメントresource- リソース記述子 (コンテキスト情報)- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- 解析エラーの場合- 関連事項:
createBeanDefinitionDocumentReader
XML ドキュメントから実際に Bean 定義を読み取るために使用するBeanDefinitionDocumentReaderを作成します。デフォルトの実装では、指定された "documentReaderClass" がインスタンス化されます。
- 関連事項:
createReaderContext
ドキュメントリーダーに渡すXmlReaderContextを作成します。getNamespaceHandlerResolver
以前に設定されていない場合は、デフォルトの NamespaceHandlerResolver を遅延作成します。- 関連事項:
createDefaultNamespaceHandlerResolver
何も指定されていない場合に使用されるNamespaceHandlerResolverのデフォルト実装を作成します。デフォルトの実装は
DefaultNamespaceHandlerResolverのインスタンスを返します。- 関連事項: