SaxClassInfo.java - SAX Implementation Class

Q

How to verify the SAX (Simple API for XML) implementation class information?

✍: FYIcenter

A

If you want to verify the SAX (Simple API for XML) implementation class information, you can try the following example program:

// Copyright (c) 2017 FYIcenter.com
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;

public class SaxClassInfo {
   public static void main(String[] args) throws Exception {
      SAXParserFactory f = SAXParserFactory.newInstance();
      SAXParser p = f.newSAXParser();
      
      System.out.println("SAX class info:");
      System.out.println("   Factory: "+f.getClass().getName());
      System.out.println("   Parser: "+p.getClass().getName());
   }
}

Compile and run it with Java SE 8 SDK:

>\fyicenter\jdk-1.8.0\bin\javac SaxClassInfo.java

>\fyicenter\jdk-1.8.0\bin\java SaxClassInfo
SAX class info:
   Factory: com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
   Parser: com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl

Run it again with Apache Xerces 2.11.0 xercesImpl.jar provided:

>\fyicenter\jdk-1.8.0\bin\java 
   -cp .;\fyicenter\xerces-2_11_0\xercesImpl.jar; SaxClassInfo
SAX class info:
   Factory: org.apache.xerces.jaxp.SAXParserFactoryImpl
   Parser: org.apache.xerces.jaxp.SAXParserImpl

The output tells you that the default implementation of SAX in Java SE 8 JDK is the Apache Xerces 2.7.1 package. And you can override it with Apache Xerces 2.11.0 by specifiying the JAR file to the -cp option.

You can confirm Apache Xerces version numbers as desribed below:

>\fyicenter\jdk-1.8.0\bin\java 
   com.sun.org.apache.xerces.internal.impl.Version

Xerces-J 2.7.1

>\fyicenter\jdk-1.8.0\bin\java 
   -cp .;\fyicenter\xerces-2_11_0\xercesImpl.jar 
   org.apache.xerces.impl.Version

Xerces-J 2.11.0

 

Using XML SAX API with Apache Xerces

⇒⇒FAQ for Apache Xerces XML Parser

2017-12-09, 199👍, 0💬