类 Jaxb2Marshaller
- java.lang.Object
- org.springframework.oxm.jaxb.Jaxb2Marshaller
- 所有已实现的接口:
Aware,BeanClassLoaderAware,InitializingBean,GenericMarshaller,GenericUnmarshaller,Marshaller,MimeMarshaller,MimeUnmarshaller,Unmarshaller
public class Jaxb2Marshaller extends Object implements MimeMarshaller, MimeUnmarshaller, GenericMarshaller, GenericUnmarshaller, BeanClassLoaderAware, InitializingBean
Implementation of theGenericMarshallerinterface for JAXB 2.2.The typical usage will be to set either the "contextPath" or the "classesToBeBound" property on this bean, possibly customize the marshaller and unmarshaller by setting properties, schemas, adapters, and listeners, and to refer to it.
- 从以下版本开始:
- 3.0
- 作者:
- Arjen Poutsma, Juergen Hoeller, Rossen Stoyanchev
- 另请参阅:
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()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 voidafterPropertiesSet()Invoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.protected XmlMappingExceptionconvertJaxbException(JAXBException ex)Convert the givenJAXBExceptionto an appropriate exception from theorg.springframework.oxmhierarchy.MarshallercreateMarshaller()Return a newly created JAXB marshaller.UnmarshallercreateUnmarshaller()Return a newly created JAXB unmarshaller.Class<?>[]getClassesToBeBound()Return the list of Java classes to be recognized by a newly created JAXBContext.StringgetContextPath()Return the JAXB context path.JAXBContextgetJaxbContext()Return the JAXBContext used by this marshaller, lazily building it if necessary.String[]getPackagesToScan()Return the packages to search for JAXB2 annotations.protected voidinitJaxbMarshaller(Marshaller marshaller)Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior.protected voidinitJaxbUnmarshaller(Unmarshaller unmarshaller)Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior.booleanisProcessExternalEntities()Return whether XML external entities are allowed.booleanisSupportDtd()Return whether DTD parsing is supported.voidmarshal(Object graph, Result result)Marshal the object graph with the given root into the providedResult.voidmarshal(Object graph, Result result, MimeContainer mimeContainer)Marshals the object graph with the given root into the providedResult, writing binary data to aMimeContainer.voidsetAdapters(XmlAdapter<?,?>... adapters)Specify theXmlAdapters to be registered with the JAXBMarshallerandUnmarshaller.voidsetBeanClassLoader(ClassLoader classLoader)Callback that supplies the beanclass loaderto a bean instance.voidsetCheckForXmlRootElement(boolean checkForXmlRootElement)Specify whether thesupports(Class)should check for@XmlRootElementannotations.voidsetClassesToBeBound(Class<?>... classesToBeBound)Set the list of Java classes to be recognized by a newly created JAXBContext.voidsetContextPath(String contextPath)Set a JAXB context path.voidsetContextPaths(String... contextPaths)Set multiple JAXB context paths.voidsetJaxbContextProperties(Map<String,?> jaxbContextProperties)Set theJAXBContextproperties.voidsetLazyInit(boolean lazyInit)Set whether to lazily initialize theJAXBContextfor this marshaller.voidsetMappedClass(Class<?> mappedClass)Specify a JAXB mapped class for partial unmarshalling.voidsetMarshallerListener(Marshaller.Listener marshallerListener)Specify theMarshaller.Listenerto be registered with the JAXBMarshaller.voidsetMarshallerProperties(Map<String,?> properties)Set the JAXBMarshallerproperties.voidsetMtomEnabled(boolean mtomEnabled)Specify whether MTOM support should be enabled or not.voidsetPackagesToScan(String... packagesToScan)Set the packages to search for classes with JAXB2 annotations in the classpath.voidsetProcessExternalEntities(boolean processExternalEntities)Indicate whether external XML entities are processed when unmarshalling.voidsetSchema(Resource schemaResource)Set the schema resource to use for validation.voidsetSchemaLanguage(String schemaLanguage)Set the schema language.voidsetSchemaResourceResolver(LSResourceResolver schemaResourceResolver)Set the resource resolver, as used to load the schema resources.voidsetSchemas(Resource... schemaResources)Set the schema resources to use for validation.voidsetSupportDtd(boolean supportDtd)Indicate whether DTD parsing should be supported.voidsetSupportJaxbElementClass(boolean supportJaxbElementClass)voidsetUnmarshallerListener(Unmarshaller.Listener unmarshallerListener)Set theUnmarshaller.Listenerto be registered with the JAXBUnmarshaller.voidsetUnmarshallerProperties(Map<String,?> properties)Set the JAXBUnmarshallerproperties.voidsetValidationEventHandler(ValidationEventHandler validationEventHandler)Set the JAXB validation event handler.booleansupports(Class<?> clazz)Indicate whether this marshaller can marshal instances of the supplied type.booleansupports(Type genericType)Indicates whether this marshaller can marshal instances of the supplied generic type.Objectunmarshal(Source source)Unmarshal the givenSourceinto an object graph.Objectunmarshal(Source source, MimeContainer mimeContainer)Unmarshals the given providedSourceinto an object graph, reading binary attachments from aMimeContainer.protected ObjectunmarshalStaxSource(Unmarshaller jaxbUnmarshaller, Source staxSource)
构造器详细资料
Jaxb2Marshaller
public Jaxb2Marshaller()
方法详细资料
setContextPaths
public void setContextPaths(String... contextPaths)
Set multiple JAXB context paths. The given array of context paths gets converted to a colon-delimited string, as supported by JAXB.
setContextPath
public void setContextPath(@Nullable String contextPath)
Set a JAXB context path.Setting either this property,
"classesToBeBound"or"packagesToScan"is required.
getContextPath
@Nullable public String getContextPath()
Return the JAXB context path.
setClassesToBeBound
public void setClassesToBeBound(@Nullable Class<?>... classesToBeBound)
Set the list of Java classes to be recognized by a newly created JAXBContext.Setting either this property,
"contextPath"or"packagesToScan"is required.
getClassesToBeBound
@Nullable public Class<?>[] getClassesToBeBound()
Return the list of Java classes to be recognized by a newly created JAXBContext.
setPackagesToScan
public void setPackagesToScan(@Nullable String... packagesToScan)
Set the packages to search for classes with JAXB2 annotations in the classpath. This is using a Spring-bases search and therefore analogous to Spring's component-scan feature (ClassPathBeanDefinitionScanner).Setting either this property,
"contextPath"or"classesToBeBound"is required.
getPackagesToScan
@Nullable public String[] getPackagesToScan()
Return the packages to search for JAXB2 annotations.
setJaxbContextProperties
public void setJaxbContextProperties(Map<String,?> jaxbContextProperties)
Set theJAXBContextproperties. These implementation-specific properties will be set on the underlyingJAXBContext.
setMarshallerProperties
public void setMarshallerProperties(Map<String,?> properties)
Set the JAXBMarshallerproperties.These properties will be set on the underlying JAXB
Marshaller, and allow for features such as indentation.- 参数:
properties- the 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(Map<String,?> properties)
Set the JAXBUnmarshallerproperties.These properties will be set on the underlying JAXB
Unmarshaller.- 参数:
properties- the properties- 另请参阅:
Unmarshaller.setProperty(String, Object)
setMarshallerListener
public void setMarshallerListener(Marshaller.Listener marshallerListener)
Specify theMarshaller.Listenerto be registered with the JAXBMarshaller.
setUnmarshallerListener
public void setUnmarshallerListener(Unmarshaller.Listener unmarshallerListener)
Set theUnmarshaller.Listenerto be registered with the JAXBUnmarshaller.
setValidationEventHandler
public void setValidationEventHandler(ValidationEventHandler validationEventHandler)
Set the JAXB validation event handler. This event handler will be called by JAXB if any validation errors are encountered during calls to any of the marshal APIs.
setAdapters
public void setAdapters(XmlAdapter<?,?>... adapters)
Specify theXmlAdapters to be registered with the JAXBMarshallerandUnmarshaller.
setSchema
public void setSchema(Resource schemaResource)
Set the schema resource to use for validation.
setSchemas
public void setSchemas(Resource... schemaResources)
Set the schema resources to use for validation.
setSchemaLanguage
public void setSchemaLanguage(String schemaLanguage)
Set the schema language. Default is the W3C XML Schema:http://www.w3.org/2001/XMLSchema".
setSchemaResourceResolver
public void setSchemaResourceResolver(LSResourceResolver schemaResourceResolver)
Set the resource resolver, as used to load the schema resources.
setLazyInit
public void setLazyInit(boolean lazyInit)
Set whether to lazily initialize theJAXBContextfor this marshaller. Default isfalseto initialize on startup; can be switched totrue.Early initialization just applies if
afterPropertiesSet()is called.
setMtomEnabled
public void setMtomEnabled(boolean mtomEnabled)
Specify whether MTOM support should be enabled or not. Default isfalse: marshalling using XOP/MTOM not being enabled.
setSupportJaxbElementClass
public void setSupportJaxbElementClass(boolean supportJaxbElementClass)
Specify whether thesupports(Class)returnstruefor theJAXBElementclass.Default is
false, meaning thatsupports(Class)always returnsfalseforJAXBElementclasses (thoughsupports(Type)can returntrue, since it can obtain the type parameters ofJAXBElement).This property is typically enabled in combination with usage of classes like
MarshallingView, since theModelAndViewdoes not offer type parameter information at runtime.
setCheckForXmlRootElement
public void setCheckForXmlRootElement(boolean checkForXmlRootElement)
Specify whether thesupports(Class)should check for@XmlRootElementannotations.Default is
true, meaning thatsupports(Class)will check for this annotation. However, some JAXB implementations (i.e. EclipseLink MOXy) allow for defining the bindings in an external definition file, thus keeping the classes annotations free. Setting this property tofalsesupports these JAXB implementations.
setMappedClass
public void setMappedClass(Class<?> mappedClass)
Specify a JAXB mapped class for partial unmarshalling.
setSupportDtd
public void setSupportDtd(boolean supportDtd)
Indicate whether DTD parsing should be supported.Default is
falsemeaning that DTD is disabled.
isSupportDtd
public boolean isSupportDtd()
Return whether DTD parsing is supported.
setProcessExternalEntities
public void setProcessExternalEntities(boolean processExternalEntities)
Indicate whether external XML entities are processed when unmarshalling.Default is
false, meaning that external entities are not resolved. Note that processing of external entities will only be enabled/disabled when theSourcepassed tounmarshal(Source)is aSAXSourceorStreamSource. It has no effect forDOMSourceorStAXSourceinstances.Note: setting this option to
truealso automatically setssetSupportDtd(boolean)totrue.
isProcessExternalEntities
public boolean isProcessExternalEntities()
Return whether XML external entities are allowed.
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
从接口复制的说明:BeanClassLoaderAwareCallback that supplies the beanclass loaderto a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean'sInitializingBean.afterPropertiesSet()method or a custom init-method.- 指定者:
setBeanClassLoader在接口中BeanClassLoaderAware- 参数:
classLoader- the owning class loader
afterPropertiesSet
public void afterPropertiesSet() throws Exception
从接口复制的说明:InitializingBeanInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- 指定者:
afterPropertiesSet在接口中InitializingBean- 抛出:
Exception- in the event of misconfiguration (such as failure to set an essential property) or if initialization fails for any other reason
getJaxbContext
public JAXBContext getJaxbContext()
Return the JAXBContext used by this marshaller, lazily building it if necessary.
supports
public boolean supports(Class<?> clazz)
从接口复制的说明:MarshallerIndicate whether this marshaller can marshal instances of the supplied type.- 指定者:
supports在接口中Marshaller- 指定者:
supports在接口中Unmarshaller- 参数:
clazz- the class that this marshaller is being asked if it can marshal- 返回:
trueif this marshaller can indeed marshal instances of the supplied class;falseotherwise
supports
public boolean supports(Type genericType)
从接口复制的说明:GenericMarshallerIndicates whether this marshaller can marshal instances of the supplied generic type.- 指定者:
supports在接口中GenericMarshaller- 指定者:
supports在接口中GenericUnmarshaller- 参数:
genericType- the type that this marshaller is being asked if it can marshal- 返回:
trueif this marshaller can indeed marshal instances of the supplied type;falseotherwise
marshal
public void marshal(Object graph, Result result) throws XmlMappingException
从接口复制的说明:MarshallerMarshal the object graph with the given root into the providedResult.- 指定者:
marshal在接口中Marshaller- 参数:
graph- the root of the object graph to marshalresult- the result to marshal to- 抛出:
XmlMappingException- if the given object cannot be marshalled to the result
marshal
public void marshal(Object graph, Result result, @Nullable MimeContainer mimeContainer) throws XmlMappingException
从接口复制的说明:MimeMarshallerMarshals the object graph with the given root into the providedResult, writing binary data to aMimeContainer.- 指定者:
marshal在接口中MimeMarshaller- 参数:
graph- the root of the object graph to marshalresult- the result to marshal tomimeContainer- the MIME container to write extracted binary content to- 抛出:
XmlMappingException- if the given object cannot be marshalled to the result
createMarshaller
public Marshaller createMarshaller()
Return a newly created JAXB marshaller.Note: JAXB marshallers are not necessarily thread-safe. This method is public as of 5.2.
- 从以下版本开始:
- 5.2
- 另请参阅:
createUnmarshaller()
initJaxbMarshaller
protected void initJaxbMarshaller(Marshaller marshaller) throws JAXBException
Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior. Gets called after creation of JAXBMarshaller, and after the respective properties have been set.The default implementation sets the
defined properties, thevalidation event handler, theschemas,listener, andadapters.
unmarshal
public Object unmarshal(Source source) throws XmlMappingException
从接口复制的说明:UnmarshallerUnmarshal the givenSourceinto an object graph.- 指定者:
unmarshal在接口中Unmarshaller- 参数:
source- the source to marshal from- 返回:
- the object graph
- 抛出:
XmlMappingException- if the given source cannot be mapped to an object
unmarshal
public Object unmarshal(Source source, @Nullable MimeContainer mimeContainer) throws XmlMappingException
从接口复制的说明:MimeUnmarshallerUnmarshals the given providedSourceinto an object graph, reading binary attachments from aMimeContainer.- 指定者:
unmarshal在接口中MimeUnmarshaller- 参数:
source- the source to marshal frommimeContainer- the MIME container to read extracted binary content from- 返回:
- the object graph
- 抛出:
XmlMappingException- if the given source cannot be mapped to an object
createUnmarshaller
public Unmarshaller createUnmarshaller()
Return a newly created JAXB unmarshaller.Note: JAXB unmarshallers are not necessarily thread-safe. This method is public as of 5.2.
- 从以下版本开始:
- 5.2
- 另请参阅:
createMarshaller()
unmarshalStaxSource
protected Object unmarshalStaxSource(Unmarshaller jaxbUnmarshaller, Source staxSource) throws JAXBException
initJaxbUnmarshaller
protected void initJaxbUnmarshaller(Unmarshaller unmarshaller) throws JAXBException
Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior. Gets called after creation of JAXBMarshaller, and after the respective properties have been set.The default implementation sets the
defined properties, thevalidation event handler, theschemas,listener, andadapters.
convertJaxbException
protected XmlMappingException convertJaxbException(JAXBException ex)
Convert the givenJAXBExceptionto an appropriate exception from theorg.springframework.oxmhierarchy.- 参数:
ex-JAXBExceptionthat occurred- 返回:
- the corresponding
XmlMappingException