クラス 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 int
DTD 検証を使用する必要があることを示します。static final int
検証を無効にする必要があることを示します。static final int
XSD 検証を使用する必要があることを示します。クラス org.springframework.beans.factory.support.AbstractBeanDefinitionReader から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクター説明指定された Bean ファクトリの新しい XmlBeanDefinitionReader を作成します。方法の概要
修飾子と型メソッド説明protected BeanDefinitionDocumentReader
XML ドキュメントから実際に Bean 定義を読み取るために使用するBeanDefinitionDocumentReader
を作成します。protected NamespaceHandlerResolver
何も指定されていない場合に使用されるNamespaceHandlerResolver
のデフォルト実装を作成します。createReaderContext
(Resource resource) ドキュメントリーダーに渡すXmlReaderContext
を作成します。protected int
detectValidationMode
(Resource resource) 提供されているResource
によって識別される XML ファイルに対して実行する検証の種類を検出します。protected int
doLoadBeanDefinitions
(InputSourceSE inputSource, Resource resource) 指定された XML ファイルから Bean 定義を実際にロードします。protected DocumentSE
doLoadDocument
(InputSourceSE inputSource, Resource resource) 設定された DocumentLoader を使用して、指定されたドキュメントを実際にロードします。protected EntityResolverSE
使用する EntityResolver を返し、何も指定されていない場合はデフォルトのリゾルバーを構築します。以前に設定されていない場合は、デフォルトの NamespaceHandlerResolver を遅延作成します。int
使用する検証モードを返します。protected int
getValidationModeForResource
(Resource resource) 指定されたResource
の検証モードを決定します。boolean
XML パーサーが XML 名前空間を認識する必要があるかどうかを返します。int
loadBeanDefinitions
(Resource resource) 指定された XML ファイルから Bean 定義をロードします。int
loadBeanDefinitions
(EncodedResource encodedResource) 指定された XML ファイルから Bean 定義をロードします。int
loadBeanDefinitions
(InputSourceSE inputSource) 指定された XML ファイルから Bean 定義をロードします。int
loadBeanDefinitions
(InputSourceSE inputSource, StringSE resourceDescription) 指定された XML ファイルから Bean 定義をロードします。int
registerBeanDefinitions
(DocumentSE doc, Resource resource) 指定された DOM ドキュメントに含まれる Bean 定義を登録します。void
setDocumentLoader
(DocumentLoader documentLoader) 使用するDocumentLoader
を指定します。void
setDocumentReaderClass
(ClassSE<? extends BeanDefinitionDocumentReader> documentReaderClass) 使用するBeanDefinitionDocumentReader
実装を指定します。これは、XML Bean 定義ドキュメントの実際の読み取りを担当します。void
setEntityResolver
(EntityResolverSE entityResolver) 解析に使用される SAX エンティティリゾルバーを設定します。void
setErrorHandler
(ErrorHandlerSE errorHandler) XML 解析エラーと警告をカスタム処理するためのorg.xml.sax.ErrorHandler
インターフェースの実装を設定します。void
setEventListener
(ReaderEventListener eventListener) 使用するReaderEventListener
を指定します。void
setNamespaceAware
(boolean namespaceAware) XML パーサーが XML 名前空間を認識する必要があるかどうかを設定します。void
setNamespaceHandlerResolver
(NamespaceHandlerResolver namespaceHandlerResolver) 使用するNamespaceHandlerResolver
を指定します。void
setProblemReporter
(ProblemReporter problemReporter) 使用するProblemReporter
を指定します。void
setSourceExtractor
(SourceExtractor sourceExtractor) 使用するSourceExtractor
を指定します。void
setValidating
(boolean validating) XML 検証を使用するかどうかを設定します。void
setValidationMode
(int validationMode) 使用する検証モードを設定します。void
setValidationModeName
(StringSE validationModeName) 名前で使用する検証モードを設定します。クラス org.springframework.beans.factory.support.AbstractBeanDefinitionReader から継承されたメソッド
getBeanClassLoader, getBeanNameGenerator, getEnvironment, getRegistry, getResourceLoader, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, setBeanClassLoader, setBeanNameGenerator, setEnvironment, setResourceLoader
フィールドの詳細
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 を使用してDocument
SE インスタンスをロードします。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
- 解析エラーの場合- 関連事項:
loadBeanDefinitions(org.springframework.core.io.Resource)
setDocumentReaderClass(java.lang.Class<? extends org.springframework.beans.factory.xml.BeanDefinitionDocumentReader>)
BeanDefinitionDocumentReader.registerBeanDefinitions(org.w3c.dom.Document, org.springframework.beans.factory.xml.XmlReaderContext)
createBeanDefinitionDocumentReader
XML ドキュメントから実際に Bean 定義を読み取るために使用するBeanDefinitionDocumentReader
を作成します。デフォルトの実装では、指定された "documentReaderClass" がインスタンス化されます。
createReaderContext
ドキュメントリーダーに渡すXmlReaderContext
を作成します。getNamespaceHandlerResolver
以前に設定されていない場合は、デフォルトの NamespaceHandlerResolver を遅延作成します。createDefaultNamespaceHandlerResolver
何も指定されていない場合に使用されるNamespaceHandlerResolver
のデフォルト実装を作成します。デフォルトの実装は
DefaultNamespaceHandlerResolver
のインスタンスを返します。