## org.springframework.http.converter.xml
Class Jaxb2RootElementHttpMessageConverter

    java.lang.Object
      org.springframework.http.converter.AbstractHttpMessageConverter<T>
          org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter<T>
              org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter<Object>
                  org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter

All Implemented Interfaces:
  HttpMessageConverter<Object>

    public class Jaxb2RootElementHttpMessageConverter

extends AbstractJaxb2HttpMessageConverter<Object>

Implementation of `HttpMessageConverter` that can read and write XML using JAXB2.

This converter can read classes annotated with `XmlRootElement` and `XmlType`, and write classes annotated with with `XmlRootElement`, or subclasses thereof.

Since:
  3.0
Author:
  Arjen Poutsma

Field Summary

Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
`logger`

Constructor Summary
`Jaxb2RootElementHttpMessageConverter()`

Method Summary
`boolean` `canRead(Class<?> clazz, MediaType mediaType)` Indicates whether the given class can be read by this converter.
`boolean` `canWrite(Class<?> clazz, MediaType mediaType)` Indicates whether the given class can be written by this converter.
`protected Object` `readFromSource(Class<?> clazz, HttpHeaders headers, Source source)` Abstract template method called from `AbstractHttpMessageConverter.read(Class, HttpInputMessage)`.
`protected boolean` `supports(Class<?> clazz)` Indicates whether the given class is supported by this converter.
`protected void` `writeToResult(Object o, HttpHeaders headers, Result result)` Abstract template method called from `AbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage)`.

Methods inherited from class org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter
`createMarshaller, createUnmarshaller, getJaxbContext`

Methods inherited from class org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter
`readInternal, transform, writeInternal`

Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
`canRead, canWrite, getContentLength, getDefaultContentType, getSupportedMediaTypes, read, setSupportedMediaTypes, write`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Jaxb2RootElementHttpMessageConverter

    public Jaxb2RootElementHttpMessageConverter()

Method Detail

### canRead

    public boolean canRead(Class<?> clazz,
                           MediaType mediaType)

  Description copied from class: `AbstractHttpMessageConverter`
  Indicates whether the given class can be read by this converter.

  This implementation checks if the given class is supported, and if the supported media types include the given media type.

  Specified by:
    `canRead` in interface `HttpMessageConverter<Object>`
  Overrides:
    `canRead` in class `AbstractHttpMessageConverter<Object>`
  Parameters:
    `clazz` - the class to test for readability
    `mediaType` - the media type to read, can be `null` if not specified. Typically the value of a `Content-Type` header.
  Returns:
    `true` if readable; `false` otherwise

### canWrite

    public boolean canWrite(Class<?> clazz,
                            MediaType mediaType)

  Description copied from class: `AbstractHttpMessageConverter`
  Indicates whether the given class can be written by this converter.

  This implementation checks if the given class is supported, and if the supported media types include the given media type.

  Specified by:
    `canWrite` in interface `HttpMessageConverter<Object>`
  Overrides:
    `canWrite` in class `AbstractHttpMessageConverter<Object>`
  Parameters:
    `clazz` - the class to test for writability
    `mediaType` - the media type to write, can be `null` if not specified. Typically the value of an `Accept` header.
  Returns:
    `true` if writable; `false` otherwise

### supports

    protected boolean supports(Class<?> clazz)

  Description copied from class: `AbstractHttpMessageConverter`
  Indicates whether the given class is supported by this converter.

  Specified by:
    `supports` in class `AbstractHttpMessageConverter<Object>`
  Parameters:
    `clazz` - the class to test for support
  Returns:
    `true` if supported; `false` otherwise

### readFromSource

    protected Object readFromSource(Class<?> clazz,
                                    HttpHeaders headers,
                                    Source source)
                             throws IOException

  Description copied from class: `AbstractXmlHttpMessageConverter`
  Abstract template method called from `AbstractHttpMessageConverter.read(Class, HttpInputMessage)`.

  Specified by:
    `readFromSource` in class `AbstractXmlHttpMessageConverter<Object>`
  Parameters:
    `clazz` - the type of object to return
    `headers` - the HTTP input headers
    `source` - the HTTP input body
  Returns:
    the converted object
  Throws:
    `IOException` - in case of I/O errors

### writeToResult

    protected void writeToResult(Object o,
                                 HttpHeaders headers,
                                 Result result)
                          throws IOException

  Description copied from class: `AbstractXmlHttpMessageConverter`
  Abstract template method called from `AbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage)`.

  Specified by:
    `writeToResult` in class `AbstractXmlHttpMessageConverter<Object>`
  Parameters:
    `o` - the object to write to the output message
    `headers` - the HTTP output headers
    `result` - the HTTP output body
  Throws:
    `IOException` - in case of I/O errors