public class Jaxb2Marshaller extends ObjectSE implements MimeMarshaller, MimeUnmarshaller, GenericMarshaller, GenericUnmarshaller, BeanClassLoaderAware, InitializingBean
GenericMarshaller インターフェースの実装。典型的な使用箇所は、この Bean に "contextPath" または "classesToBeBound" プロパティを設定し、プロパティ、スキーマ、アダプター、リスナーを設定してマーシャラーとアンマーシャラーをカスタマイズし、それを参照することです。
setContextPath(java.lang.String), setClassesToBeBound(java.lang.Class<?>...), setJaxbContextProperties(java.util.Map<java.lang.String, ?>), setMarshallerProperties(java.util.Map<java.lang.String, ?>), setUnmarshallerProperties(java.util.Map<java.lang.String, ?>), setSchema(org.springframework.core.io.Resource), setSchemas(org.springframework.core.io.Resource...), setMarshallerListener(javax.xml.bind.Marshaller.Listener), setUnmarshallerListener(javax.xml.bind.Unmarshaller.Listener), setAdapters(javax.xml.bind.annotation.adapters.XmlAdapter<?, ?>...)| コンストラクターと説明 |
|---|
Jaxb2Marshaller() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
protected XmlMappingException | convertJaxbException(JAXBExceptionSE ex) 指定された JAXBException を org.springframework.oxm 階層からの適切な例外に変換します。 |
MarshallerSE | createMarshaller() 新しく作成された JAXB マーシャラーを返します。 |
UnmarshallerSE | createUnmarshaller() 新しく作成された JAXB アンマーシャラーを返します。 |
ClassSE<?>[] | getClassesToBeBound() 新しく作成された JAXBContext によって認識される Java クラスのリストを返します。 |
StringSE | getContextPath()JAXB コンテキストパスを返します。 |
JAXBContextSE | getJaxbContext() このマーシャラーが使用する JAXBContext を返し、必要に応じて遅延ビルドします。 |
StringSE[] | getPackagesToScan()JAXB2 アノテーションを検索するパッケージを返します。 |
protected void | initJaxbMarshaller(MarshallerSE marshaller) カスタム初期化動作のために具体的な JAXB マーシャラーによってオーバーライドできるテンプレートメソッド。 |
protected void | initJaxbUnmarshaller(UnmarshallerSE unmarshaller) カスタム初期化動作のために具体的な JAXB マーシャラーによってオーバーライドできるテンプレートメソッド。 |
boolean | isProcessExternalEntities()XML 外部エンティティが許可されているかどうかを返します。 |
boolean | isSupportDtd()DTD 解析がサポートされているかどうかを返します。 |
void | marshal(ObjectSE graph, ResultSE result) 指定されたルートを持つオブジェクトグラフを指定された ResultSE にマーシャリングします。 |
void | marshal(ObjectSE graph, ResultSE result, MimeContainer mimeContainer) 指定されたルートを持つオブジェクトグラフを指定された ResultSE にマーシャリングし、バイナリデータを MimeContainer に書き込みます。 |
void | setAdapters(XmlAdapterSE<?,?>... adapters)JAXB Marshaller および Unmarshaller に登録する XmlAdapter を指定します。 |
void | setBeanClassLoader(ClassLoaderSE classLoader)Bean class loaderSE を Bean インスタンスに提供するコールバック。 |
void | setCheckForXmlRootElement(boolean checkForXmlRootElement)supports(Class) が @XmlRootElementSE アノテーションをチェックするかどうかを指定します。 |
void | setClassesToBeBound(ClassSE<?>... classesToBeBound)Java クラスのリストを、新しく作成された JAXBContext によって認識されるように設定します。 |
void | setContextPath(StringSE contextPath)JAXB コンテキストパスを設定します。 |
void | setContextPaths(StringSE... contextPaths) 複数の JAXB コンテキストパスを設定します。 |
void | setJaxbContextProperties(MapSE<StringSE,?> jaxbContextProperties)JAXBContext プロパティを設定します。 |
void | setLazyInit(boolean lazyInit) このマーシャラーの JAXBContextSE を遅延初期化するかどうかを設定します。 |
void | setMappedClass(ClassSE<?> mappedClass) 部分的な非整列化のための JAXB マップクラスを指定します。 |
void | setMarshallerListener(Marshaller.ListenerSE marshallerListener)JAXB Marshaller に登録する Marshaller.Listener を指定します。 |
void | setMarshallerProperties(MapSE<StringSE,?> properties)JAXB Marshaller プロパティを設定します。 |
void | setMtomEnabled(boolean mtomEnabled)MTOM サポートを有効にするかどうかを指定します。 |
void | setPackagesToScan(StringSE... packagesToScan) クラスパスに JAXB2 アノテーションを含むクラスを検索するようにパッケージを設定します。 |
void | setProcessExternalEntities(boolean processExternalEntities) 非整列化時に外部 XML エンティティが処理されるかどうかを示します。 |
void | setSchema(Resource schemaResource) 検証に使用するスキーマリソースを設定します。 |
void | setSchemaLanguage(StringSE schemaLanguage) スキーマ言語を設定します。 |
void | setSchemaResourceResolver(LSResourceResolverSE schemaResourceResolver) スキーマリソースのロードに使用されるリソースリゾルバーを設定します。 |
void | setSchemas(Resource... schemaResources) 検証に使用するスキーマリソースを設定します。 |
void | setSupportDtd(boolean supportDtd)DTD 解析をサポートする必要があるかどうかを示します。 |
void | setSupportJaxbElementClass(boolean supportJaxbElementClass) |
void | setUnmarshallerListener(Unmarshaller.ListenerSE unmarshallerListener)Unmarshaller.Listener が JAXB Unmarshaller に登録されるように設定します。 |
void | setUnmarshallerProperties(MapSE<StringSE,?> properties)JAXB Unmarshaller プロパティを設定します。 |
void | setValidationEventHandler(ValidationEventHandlerSE validationEventHandler)JAXB 検証イベントハンドラーを設定します。 |
boolean | supports(ClassSE<?> clazz) このマーシャラーが、指定された型のインスタンスをマーシャリングできるかどうかを示します。 |
boolean | supports(TypeSE genericType) このマーシャラーが、指定されたジェネリクス型のインスタンスをマーシャリングできるかどうかを示します。 |
ObjectSE | unmarshal(SourceSE source) 指定された SourceSE をオブジェクトグラフに非整列化します。 |
ObjectSE | unmarshal(SourceSE source, MimeContainer mimeContainer) 指定された SourceSE をオブジェクトグラフに非整列化し、MimeContainer からバイナリ添付ファイルを読み取ります。 |
protected ObjectSE | unmarshalStaxSource(UnmarshallerSE jaxbUnmarshaller, SourceSE staxSource) |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEprotected final Log logger
public void setContextPaths(StringSE... contextPaths)
public void setContextPath(@Nullable StringSE contextPath)
このプロパティを設定するには、"classesToBeBound" または "packagesToScan" が必要です。
public void setClassesToBeBound(@Nullable ClassSE<?>... classesToBeBound)
このプロパティを設定するには、"contextPath" または "packagesToScan" が必要です。
@Nullable public ClassSE<?>[] getClassesToBeBound()
public void setPackagesToScan(@Nullable StringSE... packagesToScan)
ClassPathBeanDefinitionScanner)に類似しています。 このプロパティを設定するには、"contextPath" または "classesToBeBound" が必要です。
public void setJaxbContextProperties(MapSE<StringSE,?> jaxbContextProperties)
JAXBContext プロパティを設定します。これらの実装固有のプロパティは、基になる JAXBContext に設定されます。public void setMarshallerProperties(MapSE<StringSE,?> properties)
Marshaller プロパティを設定します。 これらのプロパティは、基礎となる JAXB Marshaller で設定され、インデントなどの機能を可能にします。
public void setUnmarshallerProperties(MapSE<StringSE,?> properties)
Unmarshaller プロパティを設定します。 これらのプロパティは、基礎となる JAXB Unmarshaller に設定されます。
properties - プロパティ Unmarshaller.setProperty(String, Object)SEpublic void setMarshallerListener(Marshaller.ListenerSE marshallerListener)
Marshaller に登録する Marshaller.Listener を指定します。public void setUnmarshallerListener(Unmarshaller.ListenerSE unmarshallerListener)
Unmarshaller.Listener が JAXB Unmarshaller に登録されるように設定します。public void setValidationEventHandler(ValidationEventHandlerSE validationEventHandler)
public void setAdapters(XmlAdapterSE<?,?>... adapters)
Marshaller および Unmarshaller に登録する XmlAdapter を指定します。public void setSchema(Resource schemaResource)
public void setSchemas(Resource... schemaResources)
public void setSchemaLanguage(StringSE schemaLanguage)
http://www.w3.org/2001/XMLSchema" です。public void setSchemaResourceResolver(LSResourceResolverSE schemaResourceResolver)
public void setLazyInit(boolean lazyInit)
JAXBContextSE を遅延初期化するかどうかを設定します。デフォルトは、起動時に初期化する false です。true に切り替えることができます。 初期化は、afterPropertiesSet() が呼び出された場合にのみ適用されます。
public void setMtomEnabled(boolean mtomEnabled)
false です。XOP/ MTOM を使用したマーシャリングは有効になっていません。public void setSupportJaxbElementClass(boolean supportJaxbElementClass)
supports(Class) が JAXBElementSE クラスの true を返すかどうかを指定します。 デフォルトは false です。つまり、supports(Class) は JAXBElement クラスに対して常に false を返します(ただし、supports(Type) は JAXBElement の型パラメーターを取得できるため、true を返すことができます)。
ModelAndView は実行時に型パラメーター情報を提供しないため、このプロパティは通常、MarshallingView などのクラスの使用と組み合わせて有効になります。
public void setCheckForXmlRootElement(boolean checkForXmlRootElement)
supports(Class) が @XmlRootElementSE アノテーションをチェックするかどうかを指定します。 デフォルトは true です。つまり、supports(Class) はこのアノテーションをチェックします。ただし、一部の JAXB 実装(EclipseLink MOXy など)では、外部定義ファイルでバインディングを定義できるため、クラスアノテーションを自由に保つことができます。このプロパティを false に設定すると、これらの JAXB 実装がサポートされます。
public void setMappedClass(ClassSE<?> mappedClass)
public void setSupportDtd(boolean supportDtd)
デフォルトは false で、DTD が無効になっています。
public boolean isSupportDtd()
public void setProcessExternalEntities(boolean processExternalEntities)
デフォルトは false です。これは、外部エンティティが解決されないことを意味します。unmarshal(Source) に渡される Source が SAXSourceSE または StreamSourceSE である場合にのみ、外部エンティティの処理が有効または無効になることに注意してください。DOMSourceSE または StAXSourceSE インスタンスには影響しません。
注意 : このオプションを true に設定すると、setSupportDtd(boolean) が true に自動的に設定されます。
public boolean isProcessExternalEntities()
public void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAwareclass loaderSE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware の setBeanClassLoader classLoader - 所有クラスローダー public void afterPropertiesSet()
throws ExceptionSEInitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean の afterPropertiesSet ExceptionSE - 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合 public JAXBContextSE getJaxbContext()
public boolean supports(ClassSE<?> clazz)
MarshallerMarshaller の supports Unmarshaller の supports clazz - このマーシャラーがマーシャリングできるかどうか尋ねられているクラス true。それ以外の場合は false public boolean supports(TypeSE genericType)
GenericMarshallerGenericMarshaller の supports GenericUnmarshaller の supports genericType - このマーシャラーがマーシャリングできるかどうか尋ねられている型 true。それ以外の場合は false public void marshal(ObjectSE graph, ResultSE result) throws XmlMappingException
MarshallerResultSE にマーシャリングします。Marshaller の marshal graph - マーシャリングするオブジェクトグラフのルート result - マーシャリングする結果 XmlMappingException - 指定されたオブジェクトを結果に整列化できない場合 public void marshal(ObjectSE graph, ResultSE result, @Nullable MimeContainer mimeContainer) throws XmlMappingException
MimeMarshallerResultSE にマーシャリングし、バイナリデータを MimeContainer に書き込みます。MimeMarshaller の marshal graph - マーシャリングするオブジェクトグラフのルート result - マーシャリングする結果 mimeContainer - 抽出されたバイナリコンテンツを書き込む MIME コンテナー XmlMappingException - 指定されたオブジェクトを結果に整列化できない場合 public MarshallerSE createMarshaller()
メモ: JAXB マーシャラーは必ずしもスレッドセーフではありません。このメソッドは 5.2 以降はパブリックです。
createUnmarshaller()protected void initJaxbMarshaller(MarshallerSE marshaller) throws JAXBExceptionSE
Marshaller の作成後、およびそれぞれのプロパティが設定された後に呼び出されます。 デフォルトの実装では、defined properties、validation event handler、schemas、listener、adapters を設定します。
public ObjectSE unmarshal(SourceSE source) throws XmlMappingException
UnmarshallerSourceSE をオブジェクトグラフに非整列化します。Unmarshaller の unmarshal source - マーシャリングのソース XmlMappingException - 指定されたソースをオブジェクトにマップできない場合 public ObjectSE unmarshal(SourceSE source, @Nullable MimeContainer mimeContainer) throws XmlMappingException
MimeUnmarshallerSourceSE をオブジェクトグラフに非整列化し、MimeContainer からバイナリ添付ファイルを読み取ります。MimeUnmarshaller の unmarshal source - マーシャリングのソース mimeContainer - 抽出されたバイナリコンテンツを読み取る MIME コンテナー XmlMappingException - 指定されたソースをオブジェクトにマップできない場合 public UnmarshallerSE createUnmarshaller()
メモ: JAXB アンマーシャラーは必ずしもスレッドセーフではありません。このメソッドは 5.2 以降はパブリックです。
createMarshaller()protected ObjectSE unmarshalStaxSource(UnmarshallerSE jaxbUnmarshaller, SourceSE staxSource) throws JAXBExceptionSE
protected void initJaxbUnmarshaller(UnmarshallerSE unmarshaller) throws JAXBExceptionSE
Marshaller の作成後、およびそれぞれのプロパティが設定された後に呼び出されます。 デフォルトの実装では、defined properties、validation event handler、schemas、listener、adapters を設定します。
protected XmlMappingException convertJaxbException(JAXBExceptionSE ex)
JAXBException を org.springframework.oxm 階層からの適切な例外に変換します。ex - 発生した JAXBException XmlMappingException