クラス Jaxb2Marshaller

java.lang.ObjectSE
org.springframework.oxm.jaxb.Jaxb2Marshaller
実装されているすべてのインターフェース:
Aware, BeanClassLoaderAware, InitializingBean, GenericMarshaller, GenericUnmarshaller, Marshaller, MimeMarshaller, MimeUnmarshaller, Unmarshaller

JAXB 2.2 用の GenericMarshaller インターフェースの実装。

典型的な使用箇所は、この Bean に "contextPath" または "classesToBeBound" プロパティを設定し、プロパティ、スキーマ、アダプター、リスナーを設定してマーシャラーとアンマーシャラーをカスタマイズし、それを参照することです。

導入:
3.0
作成者:
Arjen Poutsma, Juergen Hoeller, Rossen Stoyanchev, Sam Brannen
関連事項:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final org.apache.commons.logging.Log
    サブクラスで利用可能なロガー。
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
  • 方法の概要

    修飾子と型
    メソッド
    説明
    void
    すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。
    convertJaxbException(jakarta.xml.bind.JAXBException ex)
    指定された JAXBException を org.springframework.oxm 階層からの適切な例外に変換します。
    jakarta.xml.bind.Marshaller
    新しく作成された JAXB マーシャラーを返します。
    jakarta.xml.bind.Unmarshaller
    新しく作成された JAXB アンマーシャラーを返します。
    新しく作成された JAXBContext によって認識される Java クラスのリストを返します。
    JAXB コンテキストパスを返します。
    jakarta.xml.bind.JAXBContext
    このマーシャラーが使用する JAXBContext を返し、必要に応じて遅延ビルドします。
    JAXB2 アノテーションを検索するパッケージを返します。
    protected void
    initJaxbMarshaller(jakarta.xml.bind.Marshaller marshaller)
    カスタム初期化動作のために具体的な JAXB マーシャラーによってオーバーライドできるテンプレートメソッド。
    protected void
    initJaxbUnmarshaller(jakarta.xml.bind.Unmarshaller unmarshaller)
    カスタム初期化動作のために具体的な JAXB マーシャラーによってオーバーライドできるテンプレートメソッド。
    boolean
    XML 外部エンティティが許可されているかどうかを返します。
    boolean
    DTD 解析がサポートされているかどうかを返します。
    void
    marshal(ObjectSE graph, ResultSE result)
    指定されたルートを持つオブジェクトグラフを指定された ResultSE にマーシャリングします。
    void
    marshal(ObjectSE graph, ResultSE result, @Nullable MimeContainer mimeContainer)
    指定されたルートを持つオブジェクトグラフを指定された ResultSE にマーシャリングし、バイナリデータを MimeContainer に書き込みます。
    void
    setAdapters(jakarta.xml.bind.annotation.adapters.XmlAdapter<?,?>... adapters)
    JAXB Marshaller および Unmarshaller に登録する XmlAdapter を指定します。
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    setCheckForXmlRootElement(boolean checkForXmlRootElement)
    supports(Class) が @XmlRootElement アノテーションをチェックするかどうかを指定します。
    void
    setClassesToBeBound(ClassSE<?> @Nullable... classesToBeBound)
    Java クラスのリストを、新しく作成された JAXBContext によって認識されるように設定します。
    void
    JAXB コンテキストパスを設定します。
    void
    setContextPaths(StringSE... contextPaths)
    複数の JAXB コンテキストパスを設定します。
    void
    setJaxbContextProperties(MapSE<StringSE,?> jaxbContextProperties)
    JAXBContext プロパティを設定します。
    void
    setLazyInit(boolean lazyInit)
    このマーシャラーの JAXBContext を遅延初期化するかどうかを設定します。
    void
    setMappedClass(ClassSE<?> mappedClass)
    部分的な非整列化のための JAXB マップクラスを指定します。
    void
    setMarshallerListener(jakarta.xml.bind.Marshaller.Listener marshallerListener)
    JAXB Marshaller に登録する Marshaller.Listener を指定します。
    void
    JAXB Marshaller プロパティを設定します。
    void
    setMtomEnabled(boolean mtomEnabled)
    MTOM サポートを有効にするかどうかを指定します。
    void
    クラスパスに JAXB2 アノテーションを含むクラスを検索するようにパッケージを設定します。
    void
    setProcessExternalEntities(boolean processExternalEntities)
    非整列化時に外部 XML エンティティが処理されるかどうかを示します。
    void
    setSchema(Resource schemaResource)
    検証に使用するスキーマリソースを設定します。
    void
    setSchemaLanguage(StringSE schemaLanguage)
    スキーマ言語を設定します。
    void
    スキーマリソースのロードに使用されるリソースリゾルバーを設定します。
    void
    setSchemas(Resource... schemaResources)
    検証に使用するスキーマリソースを設定します。
    void
    setSupportDtd(boolean supportDtd)
    DTD 解析をサポートする必要があるかどうかを示します。
    void
    setSupportJaxbElementClass(boolean supportJaxbElementClass)
    supports(Class) が JAXBElement クラスに対して true を返すかどうかを指定します。
    void
    setUnmarshallerListener(jakarta.xml.bind.Unmarshaller.Listener unmarshallerListener)
    Unmarshaller.Listener が JAXB Unmarshaller に登録されるように設定します。
    void
    JAXB Unmarshaller プロパティを設定します。
    void
    setValidationEventHandler(jakarta.xml.bind.ValidationEventHandler validationEventHandler)
    JAXB 検証イベントハンドラーを設定します。
    boolean
    supports(ClassSE<?> clazz)
    このマーシャラーが、指定された型のインスタンスをマーシャリングできるかどうかを示します。
    boolean
    supports(TypeSE genericType)
    このマーシャラーが、指定されたジェネリクス型のインスタンスをマーシャリングできるかどうかを示します。
    指定された SourceSE をオブジェクトグラフに非整列化します。
    unmarshal(SourceSE source, @Nullable MimeContainer mimeContainer)
    指定された SourceSE をオブジェクトグラフに非整列化し、MimeContainer からバイナリ添付ファイルを読み取ります。
    protected ObjectSE
    unmarshalStaxSource(jakarta.xml.bind.Unmarshaller jaxbUnmarshaller, SourceSE staxSource)

    クラス ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • logger

      protected final org.apache.commons.logging.Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • Jaxb2Marshaller

      public Jaxb2Marshaller()
  • メソッドの詳細

    • setContextPaths

      public void setContextPaths(StringSE... contextPaths)
      複数の JAXB コンテキストパスを設定します。コンテキストパスの指定された配列は、JAXB でサポートされているように、コロン区切りの文字列に変換されます。
    • setContextPath

      public void setContextPath(@Nullable StringSE contextPath)
      JAXB コンテキストパスを設定します。

      このプロパティを設定するには、"classesToBeBound" または "packagesToScan" が必要です。

    • getContextPath

      public @Nullable StringSE getContextPath()
      JAXB コンテキストパスを返します。
    • setClassesToBeBound

      public void setClassesToBeBound(ClassSE<?> @Nullable ... classesToBeBound)
      Java クラスのリストを、新しく作成された JAXBContext によって認識されるように設定します。

      このプロパティを設定するには、"contextPath" または "packagesToScan" が必要です。

    • getClassesToBeBound

      public ClassSE<?> @Nullable [] getClassesToBeBound()
      新しく作成された JAXBContext によって認識される Java クラスのリストを返します。
    • setPackagesToScan

      public void setPackagesToScan(StringSE @Nullable ... packagesToScan)
      クラスパスに JAXB2 アノテーションが付いたクラスを検索するようにパッケージを設定します。これは Spring ベースの検索を使用しているため、Spring のコンポーネントスキャン機能(ClassPathBeanDefinitionScanner)に類似しています。

      このプロパティを設定するには、"contextPath" または "classesToBeBound" が必要です。

    • getPackagesToScan

      public StringSE @Nullable [] getPackagesToScan()
      JAXB2 アノテーションを検索するパッケージを返します。
    • setJaxbContextProperties

      public void setJaxbContextProperties(MapSE<StringSE,?> jaxbContextProperties)
      JAXBContext プロパティを設定します。これらの実装固有のプロパティは、基になる JAXBContext に設定されます。
    • setMarshallerProperties

      public void setMarshallerProperties(MapSE<StringSE,?> properties)
      JAXB Marshaller プロパティを設定します。

      これらのプロパティは、基礎となる JAXB Marshaller で設定され、インデントなどの機能を可能にします。

      パラメーター:
      properties - プロパティ
      関連事項:
      • Marshaller.setProperty(String, Object)
      • Marshaller.JAXB_ENCODING
      • Marshaller.JAXB_FORMATTED_OUTPUT
      • Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION
      • Marshaller.JAXB_SCHEMA_LOCATION
    • setUnmarshallerProperties

      public void setUnmarshallerProperties(MapSE<StringSE,?> properties)
      JAXB Unmarshaller プロパティを設定します。

      これらのプロパティは、基礎となる JAXB Unmarshaller に設定されます。

      パラメーター:
      properties - プロパティ
      関連事項:
      • Unmarshaller.setProperty(String, Object)
    • setMarshallerListener

      public void setMarshallerListener(jakarta.xml.bind.Marshaller.Listener marshallerListener)
      JAXB Marshaller に登録する Marshaller.Listener を指定します。
    • setUnmarshallerListener

      public void setUnmarshallerListener(jakarta.xml.bind.Unmarshaller.Listener unmarshallerListener)
      Unmarshaller.Listener が JAXB Unmarshaller に登録されるように設定します。
    • setValidationEventHandler

      public void setValidationEventHandler(jakarta.xml.bind.ValidationEventHandler validationEventHandler)
      JAXB 検証イベントハンドラーを設定します。このイベントハンドラーは、マーシャリング API の呼び出し中に検証エラーが発生した場合に JAXB によって呼び出されます。
    • setAdapters

      public void setAdapters(jakarta.xml.bind.annotation.adapters.XmlAdapter<?,?>... adapters)
      JAXB Marshaller および Unmarshaller に登録する XmlAdapter を指定します。
    • setSchema

      public void setSchema(Resource schemaResource)
      検証に使用するスキーマリソースを設定します。
    • setSchemas

      public void setSchemas(Resource... schemaResources)
      検証に使用するスキーマリソースを設定します。
    • setSchemaLanguage

      public void setSchemaLanguage(StringSE schemaLanguage)
      スキーマ言語を設定します。デフォルトは W3C XML スキーマ: http://www.w3.org/2001/XMLSchema" です。
      関連事項:
    • setSchemaResourceResolver

      public void setSchemaResourceResolver(LSResourceResolverSE schemaResourceResolver)
      スキーマリソースのロードに使用されるリソースリゾルバーを設定します。
      関連事項:
    • setLazyInit

      public void setLazyInit(boolean lazyInit)
      このマーシャラーの JAXBContext を遅延初期化するかどうかを設定します。デフォルトでは起動時に初期化する false ですが、true に切り替えることもできます。

      初期化は、afterPropertiesSet() が呼び出された場合にのみ適用されます。

    • setMtomEnabled

      public void setMtomEnabled(boolean mtomEnabled)
      MTOM サポートを有効にするかどうかを指定します。デフォルトは false です。XOP/ MTOM を使用したマーシャリングは有効になっていません。
    • setSupportJaxbElementClass

      public void setSupportJaxbElementClass(boolean supportJaxbElementClass)
      supports(Class) が JAXBElement クラスに対して true を返すかどうかを指定します。

      デフォルトは false です。つまり、supports(Class) は JAXBElement クラスに対して常に false を返します(ただし、supports(Type) は JAXBElement の型パラメーターを取得できるため、true を返すことができます)。

      ModelAndView は実行時に型パラメーター情報を提供しないため、このプロパティは通常、MarshallingView などのクラスの使用と組み合わせて有効になります。

      関連事項:
    • setCheckForXmlRootElement

      public void setCheckForXmlRootElement(boolean checkForXmlRootElement)
      supports(Class) が @XmlRootElement アノテーションをチェックするかどうかを指定します。

      デフォルトは true です。つまり、supports(Class) はこのアノテーションをチェックします。ただし、一部の JAXB 実装(EclipseLink MOXy など)では、外部定義ファイルでバインディングを定義できるため、クラスアノテーションを自由に保つことができます。このプロパティを false に設定すると、これらの JAXB 実装がサポートされます。

      関連事項:
    • setMappedClass

      public void setMappedClass(ClassSE<?> mappedClass)
      部分的な非整列化のための JAXB マップクラスを指定します。
      関連事項:
      • Unmarshaller.unmarshal(javax.xml.transform.Source, Class)
    • setSupportDtd

      public void setSupportDtd(boolean supportDtd)
      DTD 解析をサポートする必要があるかどうかを示します。

      デフォルトは false で、DTD が無効になっています。

    • isSupportDtd

      public boolean isSupportDtd()
      DTD 解析がサポートされているかどうかを返します。
    • setProcessExternalEntities

      public void setProcessExternalEntities(boolean processExternalEntities)
      非整列化時に外部 XML エンティティが処理されるかどうかを示します。

      デフォルトは false です。これは、外部エンティティが解決されないことを意味します。unmarshal(Source) に渡される Source が SAXSourceSE または StreamSourceSE である場合にのみ、外部エンティティの処理が有効または無効になることに注意してください。DOMSourceSE または StAXSourceSE インスタンスには影響しません。

      注意 : このオプションを true に設定すると、setSupportDtd(boolean) が true に自動的に設定されます。

    • isProcessExternalEntities

      public boolean isProcessExternalEntities()
      XML 外部エンティティが許可されているかどうかを返します。
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      classLoader - 所有クラスローダー
    • afterPropertiesSet

      public void afterPropertiesSet() throws ExceptionSE
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      例外:
      ExceptionSE - 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
    • getJaxbContext

      public jakarta.xml.bind.JAXBContext getJaxbContext()
      このマーシャラーが使用する JAXBContext を返し、必要に応じて遅延ビルドします。
    • supports

      public boolean supports(ClassSE<?> clazz)
      インターフェースからコピーされた説明: Marshaller
      このマーシャラーが、指定された型のインスタンスをマーシャリングできるかどうかを示します。
      次で指定:
      インターフェース Marshallersupports 
      次で指定:
      インターフェース Unmarshallersupports 
      パラメーター:
      clazz - このマーシャラーがマーシャリングできるかどうか尋ねられているクラス
      戻り値:
      このマーシャラーが実際に提供されたクラスのインスタンスをマーシャリングできる場合は true。それ以外の場合は false 
    • supports

      public boolean supports(TypeSE genericType)
      インターフェースからコピーされた説明: GenericMarshaller
      このマーシャラーが、指定されたジェネリクス型のインスタンスをマーシャリングできるかどうかを示します。
      次で指定:
      インターフェース GenericMarshallersupports 
      次で指定:
      インターフェース GenericUnmarshallersupports 
      パラメーター:
      genericType - このマーシャラーがマーシャリングできるかどうか尋ねられている型
      戻り値:
      このマーシャラーが実際に提供された型のインスタンスをマーシャリングできる場合は true。それ以外の場合は false 
    • marshal

      public void marshal(ObjectSE graph, ResultSE result) throws XmlMappingException
      インターフェースからコピーされた説明: Marshaller
      指定されたルートを持つオブジェクトグラフを指定された ResultSE にマーシャリングします。
      次で指定:
      インターフェース Marshallermarshal 
      パラメーター:
      graph - マーシャリングするオブジェクトグラフのルート
      result - マーシャリングする結果
      例外:
      XmlMappingException - 指定されたオブジェクトを結果に整列化できない場合
    • marshal

      public void marshal(ObjectSE graph, ResultSE result, @Nullable MimeContainer mimeContainer) throws XmlMappingException
      インターフェースからコピーされた説明: MimeMarshaller
      指定されたルートを持つオブジェクトグラフを指定された ResultSE にマーシャリングし、バイナリデータを MimeContainer に書き込みます。
      次で指定:
      インターフェース MimeMarshallermarshal 
      パラメーター:
      graph - マーシャリングするオブジェクトグラフのルート
      result - マーシャリングする結果
      mimeContainer - 抽出されたバイナリコンテンツを書き込む MIME コンテナー
      例外:
      XmlMappingException - 指定されたオブジェクトを結果に整列化できない場合
    • createMarshaller

      public jakarta.xml.bind.Marshaller createMarshaller()
      新しく作成された JAXB マーシャラーを返します。

      メモ: JAXB マーシャラーは必ずしもスレッドセーフではありません。このメソッドは 5.2 以降はパブリックです。

      導入:
      5.2
      関連事項:
    • initJaxbMarshaller

      protected void initJaxbMarshaller(jakarta.xml.bind.Marshaller marshaller) throws jakarta.xml.bind.JAXBException
      カスタム初期化動作のために具体的な JAXB マーシャラーによってオーバーライドできるテンプレートメソッド。JAXB Marshaller の作成後、およびそれぞれのプロパティが設定された後に呼び出されます。

      デフォルトの実装では、defined propertiesvalidation event handlerschemaslisteneradapters を設定します。

      例外:
      jakarta.xml.bind.JAXBException
    • unmarshal

      public ObjectSE unmarshal(SourceSE source) throws XmlMappingException
      インターフェースからコピーされた説明: Unmarshaller
      指定された SourceSE をオブジェクトグラフに非整列化します。
      次で指定:
      インターフェース Unmarshallerunmarshal 
      パラメーター:
      source - マーシャリングのソース
      戻り値:
      オブジェクトグラフ
      例外:
      XmlMappingException - 指定されたソースをオブジェクトにマップできない場合
    • unmarshal

      public ObjectSE unmarshal(SourceSE source, @Nullable MimeContainer mimeContainer) throws XmlMappingException
      インターフェースからコピーされた説明: MimeUnmarshaller
      指定された SourceSE をオブジェクトグラフに非整列化し、MimeContainer からバイナリ添付ファイルを読み取ります。
      次で指定:
      インターフェース MimeUnmarshallerunmarshal 
      パラメーター:
      source - マーシャリングのソース
      mimeContainer - 抽出されたバイナリコンテンツを読み取る MIME コンテナー
      戻り値:
      オブジェクトグラフ
      例外:
      XmlMappingException - 指定されたソースをオブジェクトにマップできない場合
    • createUnmarshaller

      public jakarta.xml.bind.Unmarshaller createUnmarshaller()
      新しく作成された JAXB アンマーシャラーを返します。

      メモ: JAXB アンマーシャラーは必ずしもスレッドセーフではありません。このメソッドは 5.2 以降はパブリックです。

      導入:
      5.2
      関連事項:
    • unmarshalStaxSource

      protected ObjectSE unmarshalStaxSource(jakarta.xml.bind.Unmarshaller jaxbUnmarshaller, SourceSE staxSource) throws jakarta.xml.bind.JAXBException
      例外:
      jakarta.xml.bind.JAXBException
    • initJaxbUnmarshaller

      protected void initJaxbUnmarshaller(jakarta.xml.bind.Unmarshaller unmarshaller) throws jakarta.xml.bind.JAXBException
      カスタム初期化動作のために具体的な JAXB マーシャラーによってオーバーライドできるテンプレートメソッド。JAXB Marshaller の作成後、およびそれぞれのプロパティが設定された後に呼び出されます。

      デフォルトの実装では、defined propertiesvalidation event handlerschemaslisteneradapters を設定します。

      例外:
      jakarta.xml.bind.JAXBException
    • convertJaxbException

      protected XmlMappingException convertJaxbException(jakarta.xml.bind.JAXBException ex)
      指定された JAXBException を org.springframework.oxm 階層からの適切な例外に変換します。
      パラメーター:
      ex - 発生した JAXBException 
      戻り値:
      対応する XmlMappingException