javax.xml.bind
public abstract class JAXBContext extends Object
The JAXBContext
provides the JAXB users anchor to
the implmentation and hos generated classes. A JAXBContext is used to
obtain instances of {@link javax.xml.bind.Marshaller},
{@link javax.xml.bind.Unmarshaller}, and
{@link javax.xml.bind.Validator}. To obtain a JAXBContext, the
application invokes
JAXBContext context = JAXBContext.newInstance("com.mycompany:com.mycompany.xml");The list of colon separated package names matches the list in the schemas used to generate classes. In other words: If you have a schema using package name "com.mycompany.xml", then this package name has to be part of the list.
The JAXBContext
class will scan the given list of packages
for a file called jaxb.properties. This file contains the
name of an instantiation class in the property
{@link #JAXB_CONTEXT_FACTORY}. (See {@link #newInstance(String)} for
details on how the class name is obtained.) Once such a file is found, the
given class is loaded via {@link ClassLoader#loadClass(java.lang.String)}.
The JAXBContext
class demands, that the created object
has a method
public static JAXBContext createContext(String pPath, ClassLoader pClassLoader) throws JAXBException;This method is invoked with the same path and {@link ClassLoader} than above. See {@link #newInstance(String,ClassLoader)}} for details on the choice of the {@link ClassLoader}.
The created context will scan the same package path for implementation
specific configuration details (in the case of the JaxMe
application a file called Configuration.xml in any of the
packages) and do whatever else is required to initialize the runtime.
In particular it will invoke
{@link DatatypeConverter#setDatatypeConverter(DatatypeConverterInterface)}.
Since: JAXB1.0
See Also: Marshaller Unmarshaller Validator
Field Summary | |
---|---|
static String | JAXB_CONTEXT_FACTORY This is the name of the property used to determine the name of the initialization class: "javax.xml.bind.context.factory". |
Method Summary | |
---|---|
abstract Marshaller | createMarshaller() Creates a new instance of {@link Marshaller}. |
abstract Unmarshaller | createUnmarshaller() Creates a new instance of {@link Unmarshaller}. |
abstract Validator | createValidator() Creates a new instance of {@link Validator}. |
static JAXBContext | newInstance(String pPath) Creates a new instance of
|
static JAXBContext | newInstance(String pPath, ClassLoader pClassLoader) Creates a new instance of
|
This is the name of the property used to determine the name of the initialization class: "javax.xml.bind.context.factory". The name is used by {@link #newInstance(String)} and {@link #newInstance(String,ClassLoader)}. It contains a class name. The class must contain a static method
public static JAXBContext createContext(String, ClassLoader) throws JAXBException;which is invoked to create the actual instance of JAXBContext.
Creates a new instance of {@link Marshaller}. The {@link Marshaller} can be used to convert JAXB objects into XML data.
Note: Marshallers are reusable, but not reentrant (thread safe).
Creates a new instance of {@link Unmarshaller}. The {@link Unmarshaller} can be used to convert XML data into JAXB objects.
Note: Unmarshallers are reusable, but not reentrant (thread safe).
Creates a new instance of {@link Validator}. The {@link Validator} can be used to validate JAXB objects.
Creates a new instance of JAXBContext
by applying
the following algorithm:
pPath
the JAXBContext
class will try to find a file
called jaxb.properties. This file's got to be in
standard property file format. The JAXBContext
class
will load the property file.Thread.currentThread().getContextClassLoader().loadClass(String)
.public static JAXBContext createContext(String, ClassLoader) throws JAXBException;which is invoked with the
pPath
argument and the
{@link ClassLoader} of the JAXBContext class as
parameters. The result of this method is also used as the
result of the newInstance(String)
method.
Parameters: pPath A colon separated path of package names where to look for jaxb.properties files. The package names must match the generated classes which you are going to use in your application.
Returns: An initialized instance of JAXBContext
.
Throws: JAXBException An error occurred while creating the JAXBContext instance.
Creates a new instance of JAXBContext
by applying
the following algorithm:
pPath
the JAXBContext
class will try to find a file
called jaxb.properties. This file's got to be in
standard property file format. The JAXBContext
class
will load the property file.pClassLoader.loadClass(String)
.public static JAXBContext createContext(String, ClassLoader) throws JAXBException;which is invoked with the parameters
pPath
and
pClassLoader
. The result of this method is also
used as the result of the newInstance(String)
method.Parameters: pPath A colon separated path of package names where to look for jaxb.properties files. The package names must match the generated classes which you are going to use in your application.
Returns: An initialized instance of JAXBContext
.
Throws: JAXBException An error occurred while creating the JAXBContext instance.