public interface JAXBContextFactory
Factory that creates new JAXBContext
instances.
JAXBContextFactory can be located using ServiceLoader.load(Class)
- Since:
- 9, JAXB 2.3
-
Method Summary
Modifier and TypeMethodDescriptioncreateContext
(Class<?>[] classesToBeBound, Map<String, ?> properties) Create a new instance of aJAXBContext
class.createContext
(String contextPath, ClassLoader classLoader, Map<String, ?> properties) Create a new instance of aJAXBContext
class.
-
Method Details
-
createContext
JAXBContext createContext(Class<?>[] classesToBeBound, Map<String, ?> properties) throws JAXBExceptionCreate a new instance of a
JAXBContext
class.For semantics see
JAXBContext.newInstance(Class[], java.util.Map)
- Parameters:
classesToBeBound
- List of java classes to be recognized by the newJAXBContext
. Classes inclassesToBeBound
that are in named modules must be in a package that isopen
to at least thejakarta.xml.bind
module. Can be empty, in which case aJAXBContext
that only knows about spec-defined classes will be returned.properties
- provider-specific properties. Can be null, which means the same thing as passing in an empty map.- Returns:
- A new instance of a
JAXBContext
. - Throws:
JAXBException
- if an error was encountered while creating theJAXBContext
, such as (but not limited to):- No Jakarta XML Binding implementation was discovered
- Classes use Jakarta XML Binding annotations incorrectly
- Classes have colliding annotations (i.e., two classes with the same type name)
- The Jakarta XML Binding implementation was unable to locate provider-specific out-of-band information (such as additional files generated at the development time.)
classesToBeBound
are not open tojakarta.xml.bind
module
IllegalArgumentException
- if the parameter containsnull
(i.e.,newInstance(null,someMap);
)- Since:
- 9, JAXB 2.3
-
createContext
JAXBContext createContext(String contextPath, ClassLoader classLoader, Map<String, ?> properties) throws JAXBExceptionCreate a new instance of a
JAXBContext
class.For semantics see
JAXBContext.newInstance(String, ClassLoader, java.util.Map)
The interpretation of properties is up to implementations. Implementations must throw
JAXBException
if it finds properties that it doesn't understand.- Parameters:
contextPath
- List of java package names that contain schema derived classes. Classes inclassesToBeBound
that are in named modules must be in a package that isopen
to at least thejakarta.xml.bind
module.classLoader
- This class loader will be used to locate the implementation classes.properties
- provider-specific properties. Can be null, which means the same thing as passing in an empty map.- Returns:
- a new instance of a
JAXBContext
- Throws:
JAXBException
- if an error was encountered while creating theJAXBContext
such as- failure to locate either ObjectFactory.class or jaxb.index in the packages
- an ambiguity among global elements contained in the contextPath
- failure to locate a value for the context factory provider property
- mixing schema derived packages from different providers on the same contextPath
- packages are not open to
jakarta.xml.bind
module
- Since:
- 9, JAXB 2.3
-