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 階層からの適切な例外に変換します。 |
protected MarshallerSE | createMarshaller() 新しく作成された JAXB マーシャラーを返します。 |
protected 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) 指定されたルートを持つオブジェクトグラフを指定された Result SE にマーシャリングします。 |
void | marshal(ObjectSE graph, ResultSE result, MimeContainer mimeContainer) 指定されたルートを持つオブジェクトグラフを指定された Result SE にマーシャリングし、バイナリデータを MimeContainer に書き込みます。 |
void | setAdapters(XmlAdapterSE<?,?>... adapters) JAXB Marshaller および Unmarshaller に登録する XmlAdapter を指定します。 |
void | setBeanClassLoader(ClassLoaderSE classLoader) Bean class loader SE を Bean インスタンスに提供するコールバック。 |
void | setCheckForXmlRootElement(boolean checkForXmlRootElement) supports(Class) が @XmlRootElement SE アノテーションをチェックするかどうかを指定します。 |
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) このマーシャラーの JAXBContext SE を遅延初期化するかどうかを設定します。 |
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) 指定された Source SE をオブジェクトグラフに非整列化します。 |
ObjectSE | unmarshal(SourceSE source, MimeContainer mimeContainer) 指定された Source SE をオブジェクトグラフに非整列化し、MimeContainer からバイナリ添付ファイルを読み取ります。 |
protected ObjectSE | unmarshalStaxSource(UnmarshallerSE jaxbUnmarshaller, SourceSE staxSource) |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected 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)
JAXBContext
SE を遅延初期化するかどうかを設定します。デフォルトは、起動時に初期化する false
です。true
に切り替えることができます。 初期化は、afterPropertiesSet()
が呼び出された場合にのみ適用されます。
public void setMtomEnabled(boolean mtomEnabled)
false
です。XOP/ MTOM を使用したマーシャリングは有効になっていません。public void setSupportJaxbElementClass(boolean supportJaxbElementClass)
supports(Class)
が JAXBElement
SE クラスの true
を返すかどうかを指定します。 デフォルトは false
です。つまり、supports(Class)
は JAXBElement
クラスに対して常に false
を返します(ただし、supports(Type)
は JAXBElement
の型パラメーターを取得できるため、true
を返すことができます)。
ModelAndView
は実行時に型パラメーター情報を提供しないため、このプロパティは通常、MarshallingView
などのクラスの使用と組み合わせて有効になります。
public void setCheckForXmlRootElement(boolean checkForXmlRootElement)
supports(Class)
が @XmlRootElement
SE アノテーションをチェックするかどうかを指定します。 デフォルトは 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
が SAXSource
SE または StreamSource
SE である場合にのみ、外部エンティティの処理が有効または無効になることに注意してください。DOMSource
SE または StAXSource
SE インスタンスには影響しません。
注意 : このオプションを true
に設定すると、setSupportDtd(boolean)
が true
に自動的に設定されます。
public boolean isProcessExternalEntities()
public void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAware
class loader
SE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware
の setBeanClassLoader
classLoader
- 所有クラスローダー public void afterPropertiesSet() throws ExceptionSE
InitializingBean
BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含 BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean
の afterPropertiesSet
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合 public JAXBContextSE getJaxbContext()
public boolean supports(ClassSE<?> clazz)
Marshaller
Marshaller
の supports
Unmarshaller
の supports
clazz
- このマーシャラーがマーシャリングできるかどうか尋ねられているクラス true
。それ以外の場合は false
public boolean supports(TypeSE genericType)
GenericMarshaller
GenericMarshaller
の supports
GenericUnmarshaller
の supports
genericType
- このマーシャラーがマーシャリングできるかどうか尋ねられている型 true
。それ以外の場合は false
public void marshal(ObjectSE graph, ResultSE result) throws XmlMappingException
Marshaller
Result
SE にマーシャリングします。Marshaller
の marshal
graph
- マーシャリングするオブジェクトグラフのルート result
- マーシャリングする結果 XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 public void marshal(ObjectSE graph, ResultSE result, @Nullable MimeContainer mimeContainer) throws XmlMappingException
MimeMarshaller
Result
SE にマーシャリングし、バイナリデータを MimeContainer
に書き込みます。MimeMarshaller
の marshal
graph
- マーシャリングするオブジェクトグラフのルート result
- マーシャリングする結果 mimeContainer
- 抽出されたバイナリコンテンツを書き込む MIME コンテナー XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 protected MarshallerSE createMarshaller()
メモ: JAXB マーシャラーは必ずしもスレッドセーフではありません。
protected void initJaxbMarshaller(MarshallerSE marshaller) throws JAXBExceptionSE
Marshaller
の作成後、およびそれぞれのプロパティが設定された後に呼び出されます。 デフォルトの実装では、defined properties
、validation event handler
、schemas
、listener
、adapters
を設定します。
public ObjectSE unmarshal(SourceSE source) throws XmlMappingException
Unmarshaller
Source
SE をオブジェクトグラフに非整列化します。Unmarshaller
の unmarshal
source
- マーシャリングのソース XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 public ObjectSE unmarshal(SourceSE source, @Nullable MimeContainer mimeContainer) throws XmlMappingException
MimeUnmarshaller
Source
SE をオブジェクトグラフに非整列化し、MimeContainer
からバイナリ添付ファイルを読み取ります。MimeUnmarshaller
の unmarshal
source
- マーシャリングのソース mimeContainer
- 抽出されたバイナリコンテンツを読み取る MIME コンテナー XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 protected UnmarshallerSE createUnmarshaller()
メモ: JAXB アンマーシャラーは必ずしもスレッドセーフではありません。
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