News
Abstract
The IBM implementation of XML is deprecated in IBM® SDK, Java™ Technology Edition, version 8. Use the binaryAppScanner tool to identify usage of internal classes and features from the IBM XML implementation in your applications, which you can then modify to use alternative APIs.
Content
The binaryAppScanner tool is part of the WebSphere® Application Server Migration Toolkit for Application Binaries .
Run the binaryAppScanner tool as follows to identify usage of IBM XML code or features:
For help, use the following command:
For each IBM XML API that is listed in the output from the binaryAppScanner tool, modify your application to use an alternative. The following table lists some alternative APIs.
Run the binaryAppScanner tool as follows to identify usage of IBM XML code or features:
- java -jar binaryAppScanner.jar binaryInputPath --analyze --targetJava=java11
For help, use the following command:
- java -jar binaryAppScanner.jar --help --analyze
For each IBM XML API that is listed in the output from the binaryAppScanner tool, modify your application to use an alternative. The following table lists some alternative APIs.
| Internal API or feature | Alternative |
| com.ibm.xml.resolver.* This API is a derivative of the Apache XML Commons resolver. |
javax.xml.catalog.* This API is new in Oracle Java SE 9. For more information, see JEP 268: XML Catalogs . |
| org.apache.xerces.dom.* You might directly instantiate a class from the DOM implementation, or make a cast to one of those classes. |
org.w3c.dom.* (DOM interfaces) Use org.w3c.dom.Document or org.w3c.dom.DOMImplementation for creating new DOM nodes. |
| org.apache.xerces.impl.dv.util.* You might use this API for processing xs:base64Binary and xs:hexBinary values. |
javax.xml.bind.DatatypeConverter (JAXB API) For example, parseBase64Binary() , printBase64Binary() , parseHexBinary() , printHexBinary() . |
| org.apache.xerces.impl.dv.xs.* You might use this API for parsing and validating XML Schema simple type values. |
Map any XML Schema types to public interfaces or classes in Java code, according to the JAXB specification (see the table Java Mapping for XML Schema Built-in Types). For example, use java.lang.Integer for xs:int in contexts where you need an object, and use javax.xml.datatype.XMLGregorianCalendar for xs:dateTime. For more complex validation, consider constructing a dummy XML document that wraps the simple type value, then validate the document through the JAXP Schema API (javax.xml.schema). |
| org.apache.xerces.impl.xpath.regex.* You might use this API for evaluating regular expressions. These classes support the form of regular expressions in XML Schema 1.0. |
java.util.regex.* Unless your expressions are using something that is specific to the XML Schema form. |
| org.apache.xerces.parsers.* Specifically the DOMParser and SAXParser classes |
javax.xml.parsers.* (JAXP API) The entry points are SAXParserFactory and DocumentBuilderFactory . Remember to call the setNamespaceAware(true) method before creating new parser instances. |
| org.apache.xerces.util.URI org.apache.xml.utils.URI |
java.net.URI |
| org.apache.xerces.* APIs other than those that are listed previously in this table | There is no equivalent API in the Java 9 specification. Consider including Apache Xerces in your product if you cannot rewrite the code to use the standard Java API. |
| org.apache.xml.serialize.*org.apache.xml.serializer.* |
|
| org.apache.xpath.* | javax.xml.xpath (JAXP XPath API) |
| Use of Java object serialization for serializing DOMs instead of writing them to an XML document. | These previously serialized objects will be unreadable in this release. Instead, write documents as XML by using either the JAXP Transform API ( javax.xml.transform ) or DOM L3 Load/Save ( org.w3c.dom.ls ). Your code will also be more portable (you cannot transfer serialized objects between IBM and Oracle runtime environments because these environments have different DOM implementation classes in different Java packages). |
| Object serialization of javax.xml.datatype.Duration and javax.xml.datatype.XMLGregorianCalendar abstract classes | These previously serialized objects will be unreadable in this release. Use the toString() methods of these classes for serialization instead of writing them as objects. |
[{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"XML","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"8.0","Edition":"Java SE","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]
Was this topic helpful?
Document Information
Modified date:
20 March 2020
UID
swg22016031