Using XML
The IBM® SDK contains the XML4J and XL XP-J parsers, the XL TXE-J 1.0 XSLT compiler, and the XSLT4J XSLT interpreter. These tools allow you to parse, validate, transform, and serialize XML documents independently from any given XML processing implementation.
Use factory finders to locate implementations of the abstract factory classes, as described in Selecting an XML processor. By using factory finders, you can select a different XML library without changing your Java™ code.
Available XML libraries
The IBM SDK contains the following XML libraries:
- XML4J 4.5
-
XML4J is a validating parser providing support for the following standards:
- XML 1.0 (4th edition)
- Namespaces in XML 1.0 (2nd edition)
- XML 1.1 (2nd edition)
- Namespaces in XML 1.1 (2nd edition)
- W3C XML Schema 1.0 (2nd Edition)
- XInclude 1.0 (2nd Edition)
- OASIS XML Catalogs 1.0
- SAX 2.0.2
- DOM Level 3 Core, Load and Save
- DOM Level 2 Core, Events, Traversal and Range
- JAXP 1.6
XML4J 4.5 is based on Apache Xerces-J 2.9.0. See http://xerces.apache.org/xerces2-j/ for more information.
- XL XP-J 1.1
-
XL XP-J 1.1 is a high-performance non-validating parser that provides support for StAX 1.0 (JSR 173). StAX is a bidirectional API for pull-parsing and streaming serialization of XML 1.0 and XML 1.1 documents. See the XL XP-J reference information section for more details about what is supported by XL XP-J 1.1.
- XL TXE-J 1.0
-
For Version 6 and later, the IBM SDK for Java includes XL TXE-J. XL TXE-J includes the XSLT4J 2.7.8 interpreter and a new XSLT compiler. The new compiler is used by default. The XSLT4J compiler is no longer included with the IBM SDK for Java. See Migrating to the XL-TXE-J for information about migrating to XL TXE-J.
XL TXE-J provides support for the following standards:- XSLT 1.0
- XPath 1.0
- JAXP 1.6
Selecting an XML processor
- The system property with the same name as the service provider.
- The service provider specified in a properties file.
- For XMLEventFactory, XMLInputFactory, and
XMLOutputFactory only. The value of the service provider in the following file:
- AIX: /etc/java8[_64]/jre/lib/stax.properties
- Linux: /opt/ibm/java-<arch>-80/jre/lib/stax.properties
- Windows: C:\Program Files\IBM\Java80\jre\lib\stax.properties
- z/OS: /usr/lpp/java/J8.0[_64]/jre/lib/stax.properties
- For other factories. The value of the service provider in the following file:
- AIX: /etc/java8[_64]/jre/lib/jaxp.properties
- Linux: /opt/ibm/java-<arch>-80/jre/lib/jaxp.properties
- Windows: C:\Program Files\IBM\Java80\jre\lib\jaxp.properties
- z/OS: /usr/lpp/java/J8.0[_64]/jre/lib/jaxp.properties
- For XMLEventFactory, XMLInputFactory, and
XMLOutputFactory only. The value of the service provider in the following file:
- The contents of the META-INF/services/<service.provider> file.
- The default service provider.
- javax.xml.parsers.SAXParserFactory
- Selects the SAX parser. By default, org.apache.xerces.jaxp.SAXParserFactoryImpl from the XML4J library is used.
- javax.xml.parsers.DocumentBuilderFactory
- Selects the document builder. By default, org.apache.xerces.jaxp.DocumentBuilderFactoryImpl from the XML4J library is used.
- javax.xml.datatype.DatatypeFactory
- Selects the datatype factory. By default, org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl from the XML4J library is used.
- javax.xml.stream.XMLEventFactory
- Selects the StAX event factory. By default, com.ibm.xml.xlxp.api.stax.XMLEventFactoryImpl from the XL XP-J library is used.
- javax.xml.stream.XMLInputFactory
- Selects the StAX parser. By default, com.ibm.xml.xlxp.api.stax.XMLInputFactoryImpl from the XL XP-J library is used.
- javax.xml.stream.XMLOutputFactory
- Selects the StAX serializer. By default, com.ibm.xml.xlxp.api.stax.XMLOutputFactoryImpl from the XL XP-J library is used.
- javax.xml.transform.TransformerFactory
- Selects the XSLT processor. Possible values are:
- com.ibm.xtq.xslt.jaxp.compiler.TransformerFactoryImpl
- Use the XL TXE-J compiler. This value is the default.
- org.apache.xalan.processor.TransformerFactoryImpl
- Use the XSLT4J interpreter.
- javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema
- Selects the schema factory for the W3C XML Schema language. By default, org.apache.xerces.jaxp.validation.XMLSchemaFactory from the XML4J library is used.
- javax.xml.xpath.XPathFactory
- Selects the XPath processor. By default, org.apache.xpath.jaxp.XPathFactoryImpl from the XSLT4J library is used.