public class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader
BeanDefinitionDocumentReader
インターフェースの実装に委譲します。 通常、DefaultListableBeanFactory
または GenericApplicationContext
に適用されます。
このクラスは DOM ドキュメントをロードし、それに BeanDefinitionDocumentReader を適用します。ドキュメントリーダーは各 Bean 定義を特定の Bean ファクトリに登録し、後者の BeanDefinitionRegistry
インターフェースの実装と通信します。
setDocumentReaderClass(java.lang.Class<? extends org.springframework.beans.factory.xml.BeanDefinitionDocumentReader>)
, BeanDefinitionDocumentReader
, DefaultBeanDefinitionDocumentReader
, BeanDefinitionRegistry
, DefaultListableBeanFactory
, GenericApplicationContext
修飾子と型 | フィールドと説明 |
---|---|
static int | VALIDATION_AUTO 検証モードが自動的に検出されることを示します。 |
static int | VALIDATION_DTD DTD 検証を使用する必要があることを示します。 |
static int | VALIDATION_NONE 検証を無効にする必要があることを示します。 |
static int | VALIDATION_XSD XSD 検証を使用する必要があることを示します。 |
logger
コンストラクターと説明 |
---|
XmlBeanDefinitionReader(BeanDefinitionRegistry registry) 指定された Bean ファクトリの新しい XmlBeanDefinitionReader を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected BeanDefinitionDocumentReader | createBeanDefinitionDocumentReader() XML ドキュメントから実際に Bean 定義を読み取るために使用する BeanDefinitionDocumentReader を作成します。 |
protected NamespaceHandlerResolver | createDefaultNamespaceHandlerResolver() 何も指定されていない場合に使用される NamespaceHandlerResolver のデフォルト実装を作成します。 |
XmlReaderContext | 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 | getEntityResolver() 使用する EntityResolver を返し、何も指定されていない場合はデフォルトのリゾルバーを構築します。 |
NamespaceHandlerResolver | getNamespaceHandlerResolver() 以前に設定されていない場合は、デフォルトの NamespaceHandlerResolver を遅延作成します。 |
int | getValidationMode() 使用する検証モードを返します。 |
protected int | getValidationModeForResource(Resource resource) 指定された Resource の検証モードを決定します。 |
boolean | isNamespaceAware() XML パーサーが XML 名前空間を認識する必要があるかどうかを返します。 |
int | loadBeanDefinitions(EncodedResource encodedResource) 指定された XML ファイルから Bean 定義をロードします。 |
int | loadBeanDefinitions(InputSourceSE inputSource) 指定された XML ファイルから Bean 定義をロードします。 |
int | loadBeanDefinitions(InputSourceSE inputSource, StringSE resourceDescription) 指定された XML ファイルから Bean 定義をロードします。 |
int | loadBeanDefinitions(Resource resource) 指定された 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) 名前で使用する検証モードを設定します。 |
getBeanClassLoader, getBeanFactory, getBeanNameGenerator, getEnvironment, getRegistry, getResourceLoader, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, setBeanClassLoader, setBeanNameGenerator, setEnvironment, setResourceLoader
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final int VALIDATION_NONE
public static final int VALIDATION_AUTO
public static final int VALIDATION_DTD
public static final int VALIDATION_XSD
public XmlBeanDefinitionReader(BeanDefinitionRegistry registry)
registry
- Bean 定義を BeanDefinitionRegistry の形式でロードする BeanFactorypublic void setValidating(boolean validating)
true
です。この方法では、検証がオフになっている場合にネームスペースの認識をオンに切り替え、そのようなシナリオでもスキーマのネームスペースを適切に処理します。
public void setValidationModeName(StringSE validationModeName)
VALIDATION_AUTO
です。public void setValidationMode(int validationMode)
VALIDATION_AUTO
です。 これは検証自体をアクティブ化または非アクティブ化するだけであることに注意してください。スキーマファイルの検証をオフに切り替える場合は、スキーマ名前空間のサポートを明示的にアクティブにする必要がある場合があります。setNamespaceAware(boolean)
を参照してください。
public int getValidationMode()
public void setNamespaceAware(boolean namespaceAware)
これは通常、スキーマ検証がアクティブな場合は必要ありません。ただし、検証なしでは、スキーマの名前空間を適切に処理するために、これを "true" に切り替える必要があります。
public boolean isNamespaceAware()
public void setProblemReporter(@Nullable ProblemReporter problemReporter)
ProblemReporter
を指定します。 デフォルトの実装は FailFastProblemReporter
で、フェイルファスト動作を示します。外部ツールは、エラーと警告を照合してツール UI に表示する代替実装を提供できます。
public void setEventListener(@Nullable ReaderEventListener eventListener)
ReaderEventListener
を指定します。デフォルトの実装はすべてのイベント通知を破棄する EmptyReaderEventListener です。外部ツールは、BeanFactory に登録されているコンポーネントを監視するための代替実装を提供できます。
public void setSourceExtractor(@Nullable SourceExtractor sourceExtractor)
SourceExtractor
を指定します。 デフォルトの実装は NullSourceExtractor
で、これは単に null
をソースオブジェクトとして返します。これは、通常のランタイム実行中に、Bean 構成メタデータに追加のソースメタデータがアタッチされないことを意味します。
public void setNamespaceHandlerResolver(@Nullable NamespaceHandlerResolver namespaceHandlerResolver)
NamespaceHandlerResolver
を指定します。 何も指定されていない場合、デフォルトのインスタンスは createDefaultNamespaceHandlerResolver()
を介して作成されます。
public void setDocumentLoader(@Nullable DocumentLoader documentLoader)
DocumentLoader
を指定します。 デフォルトの実装は DefaultDocumentLoader
で、JAXP を使用して Document
SE インスタンスをロードします。
public void setEntityResolver(@Nullable EntityResolverSE entityResolver)
デフォルトでは、ResourceEntityResolver
が使用されます。たとえば、特定のベースパスに関連するカスタムエンティティ解決のためにオーバーライドできます。
protected EntityResolverSE getEntityResolver()
public void setErrorHandler(ErrorHandlerSE errorHandler)
org.xml.sax.ErrorHandler
インターフェースの実装を設定します。設定されていない場合、デフォルトの SimpleSaxErrorHandler が使用され、ビュークラスのロガーインスタンスを使用して警告をログに記録し、XML 変換を中止するためにエラーを再スローします。
public void setDocumentReaderClass(ClassSE<? extends BeanDefinitionDocumentReader> documentReaderClass)
BeanDefinitionDocumentReader
実装を指定します。これは、XML Bean 定義ドキュメントの実際の読み取りを担当します。 デフォルトは DefaultBeanDefinitionDocumentReader
です。
documentReaderClass
- 目的の BeanDefinitionDocumentReader 実装クラス public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException
resource
- XML ファイルのリソース記述子 BeanDefinitionStoreException
- ロードまたは解析エラーの場合 public int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException
encodedResource
- XML ファイルのリソース記述子。ファイルの解析に使用するエンコーディングを指定できます BeanDefinitionStoreException
- ロードまたは解析エラーの場合 public int loadBeanDefinitions(InputSourceSE inputSource) throws BeanDefinitionStoreException
inputSource
- 読み込む SAX InputSourceBeanDefinitionStoreException
- ロードまたは解析エラーの場合 public int loadBeanDefinitions(InputSourceSE inputSource, @Nullable StringSE resourceDescription) throws BeanDefinitionStoreException
inputSource
- 読み込む SAX InputSourceresourceDescription
- リソースの説明 (null
または空にすることができます)BeanDefinitionStoreException
- ロードまたは解析エラーの場合 protected int doLoadBeanDefinitions(InputSourceSE inputSource, Resource resource) throws BeanDefinitionStoreException
inputSource
- 読み込む SAX InputSourceresource
- XML ファイルのリソース記述子 BeanDefinitionStoreException
- ロードまたは解析エラーの場合 doLoadDocument(org.xml.sax.InputSource, org.springframework.core.io.Resource)
, registerBeanDefinitions(org.w3c.dom.Document, org.springframework.core.io.Resource)
protected DocumentSE doLoadDocument(InputSourceSE inputSource, Resource resource) throws ExceptionSE
inputSource
- 読み込む SAX InputSourceresource
- XML ファイルのリソース記述子 ExceptionSE
- DocumentLoader からスローされたとき setDocumentLoader(org.springframework.beans.factory.xml.DocumentLoader)
, DocumentLoader.loadDocument(org.xml.sax.InputSource, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, int, boolean)
protected int getValidationModeForResource(Resource resource)
Resource
の検証モードを決定します。明示的な検証モードが構成されていない場合、検証モードは指定されたリソースから detected
を取得します。VALIDATION_AUTO
以外が設定されている場合でも、検証モードを完全に制御する場合は、このメソッドをオーバーライドします。
protected int detectValidationMode(Resource resource)
Resource
によって識別される XML ファイルに対して実行する検証の種類を検出します。ファイルに DOCTYPE
定義がある場合、DTD 検証が使用されます。それ以外の場合、XSD 検証が想定されます。VALIDATION_AUTO
モードの解決をカスタマイズする場合は、このメソッドをオーバーライドします。
public int registerBeanDefinitions(DocumentSE doc, Resource resource) throws BeanDefinitionStoreException
loadBeanDefinitions
によって呼び出されます。 パーサークラスの新しいインスタンスを作成し、そのインスタンスで registerBeanDefinitions
を呼び出します。
doc
- DOM ドキュメント resource
- リソース記述子 (コンテキスト情報)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)
protected BeanDefinitionDocumentReader createBeanDefinitionDocumentReader()
BeanDefinitionDocumentReader
を作成します。デフォルトの実装では、指定された "documentReaderClass" がインスタンス化されます。
public XmlReaderContext createReaderContext(Resource resource)
XmlReaderContext
を作成します。public NamespaceHandlerResolver getNamespaceHandlerResolver()
protected NamespaceHandlerResolver createDefaultNamespaceHandlerResolver()
NamespaceHandlerResolver
のデフォルト実装を作成します。 デフォルトの実装は DefaultNamespaceHandlerResolver
のインスタンスを返します。