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