Package org.springframework.http.converter.xml

# Class AbstractXmlHttpMessageConverter<T>

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

Type Parameters:
  `T` - the converted object type

All Implemented Interfaces:
  `HttpMessageConverter<T>`

Direct Known Subclasses:
  `AbstractJaxb2HttpMessageConverter`, `MarshallingHttpMessageConverter`

public abstract class AbstractXmlHttpMessageConverter<T> extends AbstractHttpMessageConverter<T>
Abstract base class for `HttpMessageConverters` that convert from/to XML.

By default, subclasses of this converter support `text/xml`, `application/xml`, and `application/*+xml`. This can be overridden by setting the `supportedMediaTypes` property.

Since:
  3.0
Author:
  Arjen Poutsma, Juergen Hoeller

## Field Summary

### Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

`logger`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractXmlHttpMessageConverter()`
Protected constructor that sets the `supportedMediaTypes` to `text/xml` and `application/xml`, and `application/*+xml`.

## Method Summary

Modifier and Type
Method
Description
`protected abstract T`
`readFromSource(Class<? extends T> clazz, HttpHeaders headers, Source source)`
Abstract template method called from `AbstractHttpMessageConverter.read(Class, HttpInputMessage)`.
`final T`
`readInternal(Class<? extends T> clazz, HttpInputMessage inputMessage)`
Abstract template method that reads the actual object.
`protected void`
`transform(Source source, Result result)`
Transforms the given `Source` to the `Result`.
`protected final void`
`writeInternal(T t, HttpOutputMessage outputMessage)`
Abstract template method that writes the actual body.
`protected abstract void`
`writeToResult(T t, HttpHeaders headers, Result result)`
Abstract template method called from `writeInternal(Object, HttpOutputMessage)`.

### Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

`addDefaultHeaders, canRead, canRead, canWrite, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, supports, supportsRepeatableWrites, write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.http.converter.HttpMessageConverter

`getSupportedMediaTypes`

## Constructor Details

### AbstractXmlHttpMessageConverter

protected AbstractXmlHttpMessageConverter()
Protected constructor that sets the `supportedMediaTypes` to `text/xml` and `application/xml`, and `application/*+xml`.

## Method Details

### readInternal

public final T readInternal(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
Description copied from class: `AbstractHttpMessageConverter`
Abstract template method that reads the actual object. Invoked from `AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)`.

Specified by:
  `readInternal` in class `AbstractHttpMessageConverter<T>`
Parameters:
  `clazz` - the type of object to return
  `inputMessage` - the HTTP input message to read from
Returns:
  the converted object
Throws:
  `IOException` - in case of I/O errors
  `HttpMessageNotReadableException` - in case of conversion errors

### writeInternal

protected final void writeInternal(T t, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
Description copied from class: `AbstractHttpMessageConverter`
Abstract template method that writes the actual body. Invoked from `AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)`.

Specified by:
  `writeInternal` in class `AbstractHttpMessageConverter<T>`
Parameters:
  `t` - the object to write to the output message
  `outputMessage` - the HTTP output message to write to
Throws:
  `IOException` - in case of I/O errors
  `HttpMessageNotWritableException` - in case of conversion errors

### transform

protected void transform(Source source, Result result) throws TransformerException
Transforms the given `Source` to the `Result`.

Parameters:
  `source` - the source to transform from
  `result` - the result to transform to
Throws:
  `TransformerException` - in case of transformation errors

### readFromSource

protected abstract T readFromSource(Class<? extends T> clazz, HttpHeaders headers, Source source) throws Exception
Abstract template method called from `AbstractHttpMessageConverter.read(Class, HttpInputMessage)`.

Parameters:
  `clazz` - the type of object to return
  `headers` - the HTTP input headers
  `source` - the HTTP input body
Returns:
  the converted object
Throws:
  `Exception` - in case of I/O or conversion errors

### writeToResult

protected abstract void writeToResult(T t, HttpHeaders headers, Result result) throws Exception
Abstract template method called from `writeInternal(Object, HttpOutputMessage)`.

Parameters:
  `t` - the object to write to the output message
  `headers` - the HTTP output headers
  `result` - the HTTP output body
Throws:
  `Exception` - in case of I/O or conversion errors