public interface JAXBContextFactory
Factory that creates new JAXBContext instances.
JAXBContextFactory can be located using ServiceLoader.load(Class)
-
Method Summary
Modifier and TypeMethodDescriptioncreateContext(Class<?>[] classesToBeBound, Map<String, ?> properties) Create a new instance of aJAXBContextclass.createContext(String contextPath, ClassLoader classLoader, Map<String, ?> properties) Create a new instance of aJAXBContextclass.
-
Method Details
-
createContext
JAXBContext createContext(Class<?>[] classesToBeBound, Map<String, ?> properties) throws JAXBExceptionCreate a new instance of a
JAXBContextclass.For semantics see
JAXBContext.newInstance(Class[], java.util.Map)- Parameters:
classesToBeBound- List of java classes to be recognized by the newJAXBContext. Classes inclassesToBeBoundthat are in named modules must be in a package that isopento at least thejakarta.xml.bindmodule. Can be empty, in which case aJAXBContextthat 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.)
classesToBeBoundare not open tojakarta.xml.bindmodule
IllegalArgumentException- if the parameter containsnull(i.e.,newInstance(null,someMap);)
-
createContext
JAXBContext createContext(String contextPath, ClassLoader classLoader, Map<String, ?> properties) throws JAXBExceptionCreate a new instance of a
JAXBContextclass.For semantics see
JAXBContext.newInstance(String, ClassLoader, java.util.Map)The interpretation of properties is up to implementations. Implementations must throw
JAXBExceptionif it finds properties that it doesn't understand.- Parameters:
contextPath- List of java package names that contain schema derived classes. Classes inclassesToBeBoundthat are in named modules must be in a package that isopento at least thejakarta.xml.bindmodule.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 theJAXBContextsuch 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.bindmodule
-