Class XmlMetaDataParser
java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.datanucleus.metadata.xml.XmlMetaDataParser
- All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler
Class to provide the parsing framework for parsing XML metadata files.
This will support parsing of any metadata files where the resultant object is derived from org.datanucleus.metadata.MetaData, so can be used on JDO XML files,
ORM XML files, JDOQUERY XML files, JPA/Jakarta orm.xml files, or JDO/JPA/Jakarta "persistence.xml" files. Can be used for any future XML metadata files too.
Provides 3 different entry points depending on whether the caller has a URL, a file, or an InputStream.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected XmlMetaDataEntityResolverEntityResolver for all XML MetaData.protected final MetaDataManagerMetaData manager.protected final booleanWhether to support namespaces.private final SAXParserSAXParser being used.protected final PluginManagerPlugin Manager.protected final booleanWhether to validate while parsing. -
Constructor Summary
ConstructorsConstructorDescriptionXmlMetaDataParser(MetaDataManager mgr, PluginManager pluginMgr, boolean validate, boolean namespaceAware) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprivate SAXParserparseXmlMetaDataFile(String fileName, String handlerName) Method to parse an XML MetaData file given the filename.parseXmlMetaDataStream(InputStream in, String filename, String handlerName) Method to parse an XML MetaData file given an InputStream.parseXmlMetaDataURL(URL url, String handlerName) Method to parse an XML MetaData file given the URL of the file.Methods inherited from class DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
-
Field Details
-
entityResolver
EntityResolver for all XML MetaData. -
mgr
MetaData manager. -
pluginMgr
Plugin Manager. -
validate
protected final boolean validateWhether to validate while parsing. -
namespaceAware
protected final boolean namespaceAwareWhether to support namespaces. -
parser
SAXParser being used. SAXParser instances are NOT thread-safe. Obtain a lock on this instance when using it.
-
-
Constructor Details
-
XmlMetaDataParser
public XmlMetaDataParser(MetaDataManager mgr, PluginManager pluginMgr, boolean validate, boolean namespaceAware) Constructor.- Parameters:
mgr- MetaDataManagerpluginMgr- Manager for pluginsvalidate- Whether to validate while parsingnamespaceAware- Whether to support namespaces
-
-
Method Details
-
createSAXParser
-
parseXmlMetaDataURL
Method to parse an XML MetaData file given the URL of the file.- Parameters:
url- Url of the metadata filehandlerName- Name of the handler plugin to use when parsing- Returns:
- The MetaData for this file
- Throws:
NucleusException- thrown if error occurred
-
parseXmlMetaDataFile
Method to parse an XML MetaData file given the filename.- Parameters:
fileName- Name of the filehandlerName- Name of the handler plugin to use when parsing- Returns:
- The MetaData for this file
- Throws:
NucleusException- if error occurred
-
parseXmlMetaDataStream
Method to parse an XML MetaData file given an InputStream. Closes the input stream when finished.- Parameters:
in- input streamfilename- Name of the file (if applicable)handlerName- Name of the handler plugin to use when parsing- Returns:
- The MetaData for this file
- Throws:
NucleusException- thrown if error occurred
-