Also see the XMLC 2.2 Release Note, XMLC 2.2.1 Release Note, XMLC 2.2.2 Release Note, XMLC 2.2.3 Release Note, XMLC 2.2.4 Release Note, XMLC 2.2.5 Release Note, XMLC 2.2.6 Release Note, XMLC 2.2.7.1 Release Note, XMLC 2.2.8.1 Release Note, XMLC 2.2.9 Release Note, XMLC 2.2.10 Release Note, XMLC 2.2.11 Release Note, and XMLC 2.2.12 Release Note.
NullPointerException
when using dynamic loading with XML documents
XercesDomFactory.getMIMEType()
was returning null
. For DOM factories that extend this class but don't override getMIMEType()
, such as LazyDomFactory
, the mime type was left as null. This caused problems when using dynamic loading because the DynamicMLCreator
implementations depend on a non-null value. Updated XercesDomFactory.getMIMEType()
to return "text/xml"
. Also updated DynamicClassLoader
to throw an XMLCError
in the case that the DynamicMLCreator
implementation cannot be instantiated, which makes it easier to determine the root cause and avoids an inevitable NullPointerException
.
Added public static boolean isNodeOfType(Node node, short ofType)
method to DOMOps. This provides a node type test which, like instanceof
, is null-safe, but is significantly faster. Instead of first checking for nullness of the node and then calling node.getNodeType() == Node.TEXT_NODE
, you can now do it inline such as if (DOMOps.isNodeOfType(node, Node.TEXT_NODE)) { ... }
.
XMLC uses a modified version of the XmlReader from the Rome project. The original version was based on Rome version 1.11. Changes applied to Rome versions 1.12 and 1.13 have now been applied to XMLC's version, providing enhanced XML encoding sniffing.
getAttribute*()
methods in LazyHTMLElement
and XHTMLElementImpl
(and to XMLC's Xerces1 HTMLElementImpl
)
Added null checks to getAttribute*()
methods to avoid the attributeName.toLowerCase()
call when the provided atributeName
is null. It might seem like an odd occurence to pass in a null value for the attribute name, but the Xerces2 DOMNormalizer
does such a thing. It loops through all possible attributes, but when they aren't actually specified on the element the localName
ends up being null. It is not possible to validate the DOM in memory using XMLC-2.2.xx, but will be in XMLC-2.3 (which is based on Xerces2) and we need to allow for the possibility. Note that until the Xerces2 HTMLElementImpl
(and/or DOMNormalizer
) is updated with this fix, the result of in memory DOM validation using document.normalizeDocument()
will be a NullPointerException (not to mention the fact that one will need to use a modified XHTML DTD, and load it from a catalog, to stand in for the HTML DTD, since the HTML DTDs themselves are not well formed, ugh!).
Added a local copy of vxml20.dtd to the wireless package so it can be parsed offline. Updated default.xcat to account for the addition.
The authors of the W3C XHTML 1.0 Basic DTD made an error in not ignoring the Architecture module, which uses namespaces in the PI. This is invalid according to the XML 1.0 Namespaces spec. See www-html-editor 2001OctDec thread #1213 for more info.
Updated to xml-apis-1.3.04, which ships with the Xerces-2.9.0 distribution. Also updated to Jaxen-1.1-beta-12 and JUnit-3.8.2 (and updated the JUnit Tivano ParameterizedTestSuite.warning(String) method to be public and static, since it is now that way in the TestSuite superclass).