org.springframework.oxm

## Interface Marshaller

All Known Subinterfaces:
  GenericMarshaller, MimeMarshaller

All Known Implementing Classes:
  AbstractMarshaller, CastorMarshaller, Jaxb2Marshaller, JibxMarshaller, XmlBeansMarshaller, XStreamMarshaller

    public interface Marshaller

Defines the contract for Object XML Mapping Marshallers. Implementations of this interface can serialize a given Object to an XML Stream.

Although the `marshal` method accepts a `java.lang.Object` as its first parameter, most `Marshaller` implementations cannot handle arbitrary `Object`s. Instead, a object class must be registered with the marshaller, or have a common base class.

Since:
  3.0
Author:
  Arjen Poutsma
See Also:
  `Unmarshaller`

### Method Summary

Methods
`void` `marshal(Object graph, Result result)` Marshals the object graph with the given root into the provided `Result`.
`boolean` `supports(Class<?> clazz)` Indicates whether this marshaller can marshal instances of the supplied type.

### Method Detail

#### supports

    boolean supports(Class<?> clazz)

Indicates whether this marshaller can marshal instances of the supplied type.

Parameters:
  `clazz` - the class that this marshaller is being asked if it can marshal
Returns:
  `true` if this marshaller can indeed marshal instances of the supplied class; `false` otherwise

#### marshal

    void marshal(Object graph,
               Result result)
                 throws IOException,
                        XmlMappingException

Marshals the object graph with the given root into the provided `Result`.

Parameters:
  `graph` - the root of the object graph to marshal
  `result` - the result to marshal to
Throws:
  `IOException` - if an I/O error occurs
  `XmlMappingException` - if the given object cannot be marshalled to the result