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
    Modifier and Type | Method and Description
    --- | ---
    `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