クラス XmlBeanDefinitionReader

java.lang.ObjectSE
org.springframework.beans.factory.support.AbstractBeanDefinitionReader
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
実装されているすべてのインターフェース:
BeanDefinitionReader, EnvironmentCapable

public class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader
XML Bean 定義の Bean 定義リーダー。実際の XML ドキュメントの読み取りを BeanDefinitionDocumentReader インターフェースの実装に委譲します。

通常、DefaultListableBeanFactory または GenericApplicationContext に適用されます。

このクラスは DOM ドキュメントをロードし、それに BeanDefinitionDocumentReader を適用します。ドキュメントリーダーは各 Bean 定義を特定の Bean ファクトリに登録し、後者の BeanDefinitionRegistry インターフェースの実装と通信します。

導入:
26.11.2003
作成者:
Juergen Hoeller, Rob Harrop, Chris Beams, Sam Brannen
関連事項:
  • フィールドの詳細

    • VALIDATION_NONE

      public static final int VALIDATION_NONE
      検証を無効にする必要があることを示します。
      関連事項:
    • VALIDATION_AUTO

      public static final int VALIDATION_AUTO
      検証モードが自動的に検出されることを示します。
      関連事項:
    • VALIDATION_DTD

      public static final int VALIDATION_DTD
      DTD 検証を使用する必要があることを示します。
      関連事項:
    • VALIDATION_XSD

      public static final int VALIDATION_XSD
      XSD 検証を使用する必要があることを示します。
      関連事項:
  • コンストラクターの詳細

    • XmlBeanDefinitionReader

      public XmlBeanDefinitionReader(BeanDefinitionRegistry registry)
      指定された Bean ファクトリの新しい XmlBeanDefinitionReader を作成します。
      パラメーター:
      registry - Bean 定義を BeanDefinitionRegistry の形式でロードする BeanFactory
  • メソッドの詳細

    • setValidating

      public void setValidating(boolean validating)
      XML 検証を使用するかどうかを設定します。デフォルトは true です。

      この方法では、検証がオフになっている場合にネームスペースの認識をオンに切り替え、そのようなシナリオでもスキーマのネームスペースを適切に処理します。

      関連事項:
    • setValidationModeName

      public void setValidationModeName(StringSE validationModeName)
      名前で使用する検証モードを設定します。デフォルトは 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

      public void setProblemReporter(@Nullable ProblemReporter problemReporter)
      使用する ProblemReporter を指定します。

      デフォルトの実装は FailFastProblemReporter で、フェイルファスト動作を示します。外部ツールは、エラーと警告を照合してツール UI に表示する代替実装を提供できます。

    • setEventListener

      public void setEventListener(@Nullable ReaderEventListener eventListener)
      使用する ReaderEventListener を指定します。

      デフォルトの実装はすべてのイベント通知を破棄する EmptyReaderEventListener です。外部ツールは、BeanFactory に登録されているコンポーネントを監視するための代替実装を提供できます。

    • setSourceExtractor

      public void setSourceExtractor(@Nullable SourceExtractor sourceExtractor)
      使用する SourceExtractor を指定します。

      デフォルトの実装は NullSourceExtractor で、これは単に null をソースオブジェクトとして返します。これは、通常のランタイム実行中に、Bean 構成メタデータに追加のソースメタデータがアタッチされないことを意味します。

    • setNamespaceHandlerResolver

      public void setNamespaceHandlerResolver(@Nullable NamespaceHandlerResolver namespaceHandlerResolver)
      使用する NamespaceHandlerResolver を指定します。

      何も指定されていない場合、デフォルトのインスタンスは createDefaultNamespaceHandlerResolver() を介して作成されます。

    • setDocumentLoader

      public void setDocumentLoader(@Nullable DocumentLoader documentLoader)
      使用する DocumentLoader を指定します。

      デフォルトの実装は DefaultDocumentLoader で、JAXP を使用して DocumentSE インスタンスをロードします。

    • setEntityResolver

      public void setEntityResolver(@Nullable EntityResolverSE entityResolver)
      解析に使用される SAX エンティティリゾルバーを設定します。

      デフォルトでは、ResourceEntityResolver が使用されます。たとえば、特定のベースパスに関連するカスタムエンティティ解決のためにオーバーライドできます。

    • getEntityResolver

      protected EntityResolverSE getEntityResolver()
      使用する EntityResolver を返し、何も指定されていない場合はデフォルトのリゾルバーを構築します。
    • setErrorHandler

      public void setErrorHandler(ErrorHandlerSE errorHandler)
      XML 解析エラーと警告をカスタム処理するための org.xml.sax.ErrorHandler インターフェースの実装を設定します。

      設定されていない場合、デフォルトの SimpleSaxErrorHandler が使用され、ビュークラスのロガーインスタンスを使用して警告をログに記録し、XML 変換を中止するためにエラーを再スローします。

      関連事項:
    • setDocumentReaderClass

      public void setDocumentReaderClass(ClassSE<? extends BeanDefinitionDocumentReader> documentReaderClass)
      使用する BeanDefinitionDocumentReader 実装を指定します。これは、XML Bean 定義ドキュメントの実際の読み取りを担当します。

      デフォルトは DefaultBeanDefinitionDocumentReader です。

      パラメーター:
      documentReaderClass - 目的の BeanDefinitionDocumentReader 実装クラス
    • loadBeanDefinitions

      public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException
      指定された XML ファイルから Bean 定義をロードします。
      パラメーター:
      resource - XML ファイルのリソース記述子
      戻り値:
      見つかった Bean 定義の数
      例外:
      BeanDefinitionStoreException - ロードまたは解析エラーの場合
    • loadBeanDefinitions

      public int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException
      指定された XML ファイルから Bean 定義をロードします。
      パラメーター:
      encodedResource - XML ファイルのリソース記述子。ファイルの解析に使用するエンコーディングを指定できます
      戻り値:
      見つかった Bean 定義の数
      例外:
      BeanDefinitionStoreException - ロードまたは解析エラーの場合
    • loadBeanDefinitions

      public int loadBeanDefinitions(InputSourceSE inputSource) throws BeanDefinitionStoreException
      指定された XML ファイルから Bean 定義をロードします。
      パラメーター:
      inputSource - 読み込む SAX InputSource
      戻り値:
      見つかった Bean 定義の数
      例外:
      BeanDefinitionStoreException - ロードまたは解析エラーの場合
    • loadBeanDefinitions

      public int loadBeanDefinitions(InputSourceSE inputSource, @Nullable StringSE resourceDescription) throws BeanDefinitionStoreException
      指定された XML ファイルから Bean 定義をロードします。
      パラメーター:
      inputSource - 読み込む SAX InputSource
      resourceDescription - リソースの説明 (null または空にすることができます)
      戻り値:
      見つかった Bean 定義の数
      例外:
      BeanDefinitionStoreException - ロードまたは解析エラーの場合
    • doLoadBeanDefinitions

      protected int doLoadBeanDefinitions(InputSourceSE inputSource, Resource resource) throws BeanDefinitionStoreException
      指定された XML ファイルから Bean 定義を実際にロードします。
      パラメーター:
      inputSource - 読み込む SAX InputSource
      resource - XML ファイルのリソース記述子
      戻り値:
      見つかった Bean 定義の数
      例外:
      BeanDefinitionStoreException - ロードまたは解析エラーの場合
      関連事項:
    • doLoadDocument

      protected DocumentSE doLoadDocument(InputSourceSE inputSource, Resource resource) throws ExceptionSE
      設定された DocumentLoader を使用して、指定されたドキュメントを実際にロードします。
      パラメーター:
      inputSource - 読み込む SAX InputSource
      resource - XML ファイルのリソース記述子
      戻り値:
      DOM ドキュメント
      例外:
      ExceptionSE - DocumentLoader からスローされたとき
      関連事項:
    • getValidationModeForResource

      protected int getValidationModeForResource(Resource resource)
      指定された Resource の検証モードを決定します。明示的な検証モードが構成されていない場合、検証モードは指定されたリソースから detected を取得します。

      VALIDATION_AUTO 以外が設定されている場合でも、検証モードを完全に制御する場合は、このメソッドをオーバーライドします。

      関連事項:
    • detectValidationMode

      protected int detectValidationMode(Resource resource)
      提供された 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

      protected BeanDefinitionDocumentReader createBeanDefinitionDocumentReader()
      XML ドキュメントから実際に Bean 定義を読み取るために使用する BeanDefinitionDocumentReader を作成します。

      デフォルトの実装では、指定された "documentReaderClass" がインスタンス化されます。

      関連事項:
    • createReaderContext

      public XmlReaderContext createReaderContext(Resource resource)
      ドキュメントリーダーに渡す XmlReaderContext を作成します。
    • getNamespaceHandlerResolver

      public NamespaceHandlerResolver getNamespaceHandlerResolver()
      以前に設定されていない場合は、デフォルトの NamespaceHandlerResolver を遅延作成します。
      関連事項:
    • createDefaultNamespaceHandlerResolver

      protected NamespaceHandlerResolver createDefaultNamespaceHandlerResolver()
      何も指定されていない場合に使用される NamespaceHandlerResolver のデフォルト実装を作成します。

      デフォルトの実装は DefaultNamespaceHandlerResolver のインスタンスを返します。

      関連事項: