Package org.exolab.castor.xml

The XML Marshaller API
Version:
Author:
Keith Visco

Marshaller marshalls a Java object into an XML document.

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" XMLClassDescriptor 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.
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.
XMLFieldDescriptor XML field descriptor.

Class Summary

AccessRights A class used to indicate access rights
CastorException The base exception for Castor (or at least Castor XML)
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.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 to allowing serializing 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.
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.
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.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 Redistribution and use of this software and associated documentation ("Software"), with or without modification, are permitted provided that the following conditions are met: 1.
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.
XMLException An exception that is used to signal an error that has occured during marshalling or unmarshalling.
XMLFieldHandler A field handler knows how to perform various operations on the field that require access to the field value.
XMLMappingLoader An XML implementation of mapping helper.
XMLMappingLoader.ContainerElementFieldDescriptor An extended XMLFieldDescriptor that allows us to change the fieldType, needed for container element support
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
Version:
Author:
Keith Visco

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 );

Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com