Both of them seem to have the same purpose (create a XMLReader). Some Tutorials contain the one, some the other.
SAXParserFactory:
example code:
// SAXParserFactory
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.parse(new InputSource("document.xml"));
XMLReaderFactory:
example code:
// XMLReaderFactory
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.parse(new InputSource("document.xml"));
question:
Are these the main differences or are there some i've overseen.
Which one should you choose?
The main JAXP APIs are defined in the javax.xml.parsers package. That package contains vendor-neutral factory classes like the SAXParserFactory which give you a SAXParser.
The SAXParserFactory defines a factory API that enables applications to configure and obtain a SAX based parser to parse XML documents.
The SAXParser defines the API that wraps an XMLReader
implementation class.
The Package org.xml.sax defines the basic SAX APIs.
The Java Runtime comes with a default implementation XMLReader
The SAXParserFactory hides details of which (SAX1) ParserFactory / (SAX2) XMLReaderFactory, ... from you.
If you want to be able to replace the default JAXP Parser by a different JAXP Parser (there may be a known incomapatibilty / bug in the default implementation) implementation you should use the vendor neutral SAXParserFactory.
If you know that your application will allways use a SAX2 XMLReader you may use the XMLReaderFactory.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With