The XML Marshaller API
Marshaller marshalls a Java object into an XML document. Unmarshaller unmarshalls an XML document back into a Java object.
The following example unmarshals the XML document product.xml into a Product object, performs simple changes to the object and then marshals it back into an XML document.
Product prod; File file; file = new File( "product.xml" ); // Unmarshal the document into an object prod = (Product) Unmarshaller.unmarshal( Product.class, new FileReader( file ) ); // A 25% mark down for each product and mark as sale prod.markDown( 0.25 ); prod.setOnSale( true ); // Marshal the object into a document Marshaller.marshal( Product, new FileWriter( file ) );
In addition to static methods, marshaller objects can be created and set with a variety of options affecting how they will operation.
See: Description
Interface Summary | |
---|---|
AttributeSet | A simple interface for handling Attributes in the Marshalling Framework. |
ClassDescriptorEnumeration | An enumeration interface specifically for XMLClassDescriptors. |
ClassDescriptorResolver | An interface for finding or "resolving" ClassDescriptor classes. |
ClassValidator | The validation interface used for validating class instances |
EventProducer | A interface which abstracts anything which can produce SAX events. |
IDResolver | A simple interface for doing custom IDREF resolving during Unmarshalling. |
Location | A simple Location class used for fine grained detail of exceptions |
MarshalListener | An interface to allow external "listening" to objects when they are being marshalled for various tracking purposes and potential modification, and to prevent an object from being marshalled if necessary. |
OutputFormat | Output format contract for XML serialization. |
SAX2EventProducer | A interface which abstracts anything which can produce SAX 2 events. |
Serializer | Interface contract for XML serialization business. |
TypeValidator | The basic type validation interface class |
UnmarshalListener | An interface to allow external "listening" to objects when they are being unmarshalled for various tracking purposes and potential modification. |
XMLClassDescriptor | A class descriptor for describing relationships between a Class and an XML element or complexType. |
XMLClassDescriptorResolver | An interface for finding or "resolving" XMLClassDescriptor classes. |
XMLFieldDescriptor | XML field descriptor. |
XMLSerializerFactory | Configurable factory object for XML serialization. |
Class Summary | |
---|---|
AccessRights | A class used to indicate access rights |
CastorException | The base exception for Castor (or at least Castor XML) |
ClassDescriptorResolverFactory | |
DebugHandler | A Simple DocumentHandler that intercepts SAX events and prints them to the console |
DescriptorType | This class represents the Possible Descriptor types used by the marshalling Framework. |
FieldValidator | Handles field validation |
FileLocation | A simple FileLocation class used for finer grained detail of exceptions |
IntrospectedXMLClassDescriptor | A simple extension of XMLClassDescriptor so that we can set the "instrospected" flag. |
Introspector | A Helper class for the Marshaller and Unmarshaller, basically the common code base between the two. |
Introspector.IdentityConvertor | A special TypeConvertor that simply returns the object given. |
Introspector.MethodSet | A simple struct for holding a set of accessor methods |
JavaNaming | This class converts XML Names to proper Java names. |
MarshalException | An exception that is used to signal marshalling exceptions. |
MarshalFramework | A core class for common code shared throughout the Marshalling Framework |
MarshalFramework.InheritanceMatch | Used to store the information when we find a possible inheritance. |
MarshalFramework.InternalXMLClassDescriptor | An internal implementation of XMLClassDescriptor used by the Unmarshaller and Marshaller... |
Marshaller | A Marshaller that serializes Java Object's to XML Note: This class is not thread safe, and not intended to be, so please create a new Marshaller for each thread if it is to be used in a multithreaded environment. |
Marshaller.MarshalState | |
Marshaller.NilObject | A wrapper for a "Nil" object |
Marshaller.WrapperInfo | Inner-class used for handling wrapper elements and locations |
Namespaces | A class for handling Namespace declaration and scoping |
Namespaces.Namespace | An internal class used to represent a namespace |
Namespaces.NamespaceEnumerator | A simple Enumeration for Namespace objects |
NodeType | The possible node types for an XML field. |
ProcessingInstruction | A class that represents an XML processing instruction. |
ResolverException | The exception class thrown by the ClassDescriptorResolver |
SimpleTypeValidator | A class for defining simple rules used for validating a content model |
UnmarshalHandler | An unmarshaller to allowing unmarshalling of XML documents to Java Objects. |
UnmarshalHandler.Arguments | Internal class used for passing constructor argument information |
UnmarshalHandler.ArrayHandler | A class for handling Arrays during unmarshalling. |
UnmarshalHandler.ElementInfo | A utility class for keeping track of the qName and how the SAX parser passed attributes |
UnmarshalHandler.IDResolverImpl | Local IDResolver |
UnmarshalHandler.ReferenceInfo | Internal class used to save state for reference resolving |
Unmarshaller | An unmarshaller to allowing unmarshalling of XML documents to Java Objects. |
UnmarshalState | The state information class for the UnmarshalHandler |
ValidationContext | A class which can be used to hold validation information, used by the TypeValidator interface. |
ValidationException | An exception that can be used to signal XML validation errors |
Validator | A class which can perform Validation on an Object model. |
XercesOutputFormat | Xerces-specific OutputFormat instance. |
XercesSerializer | Xerces-specific implementation of the Serializer interface. |
XercesXMLSerializerFactory | Xerces-specific implementation of the XMLSerializerFactory interface. |
XMLException | An exception that is used to signal an error that has occured during marshalling or unmarshalling. |
XMLFieldHandler | This FieldHandler is used in the generated descriptors. |
XMLMappingLoader | An XML implementation of mapping helper. |
XMLMappingLoader.IdentityConvertor | A special TypeConvertor that simply returns the object given. |
XMLNaming | An abstract class to handing XML naming |
XPathLocation | A very simple XPath location class for use with the ValidationException. |
The XML Marshaller API
Marshaller marshalls a Java object into an XML document. Unmarshaller unmarshalls an XML document back into a Java object.
The following example unmarshals the XML document product.xml into a Product object, performs simple changes to the object and then marshals it back into an XML document.
Product prod; File file; file = new File( "product.xml" ); // Unmarshal the document into an object prod = (Product) Unmarshaller.unmarshal( Product.class, new FileReader( file ) ); // A 25% mark down for each product and mark as sale prod.markDown( 0.25 ); prod.setOnSale( true ); // Marshal the object into a document Marshaller.marshal( Product, new FileWriter( file ) );
In addition to static methods, marshaller objects can be created and set with a variety of options affecting how they will operation. The above example adapted to use a specific mapping file:
Mapping map; Unmarshaller umr; Marshaller mar; // Load the specified mapping file map = new Mapping(); map.loadMapping( "mapping.xml" ); // Unmarshal the document into an object umr = new Unmarshaller( Product.class ); umr.setMapping( mapping ); prod = (Product) umr.unmarshal( new FileReader( file ) ); : : : // Marshal the object into a document mar = new Marshaller( new FileWriter( file ) ); mar.setMapping( mapping ); mar.marshal( Product );