Package org.datanucleus.metadata.xml
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 XmlMetaDataEntityResolver
EntityResolver for all XML MetaData.protected final MetaDataManager
MetaData manager.protected final boolean
Whether to support namespaces.private final SAXParser
SAXParser being used.protected final PluginManager
Plugin Manager.protected final boolean
Whether to validate while parsing. -
Constructor Summary
ConstructorsConstructorDescriptionXmlMetaDataParser
(MetaDataManager mgr, PluginManager pluginMgr, boolean validate, boolean namespaceAware) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprivate SAXParser
parseXmlMetaDataFile
(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 org.xml.sax.helpers.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
-