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, XMLC 2.2.12 Release Note, and XMLC 2.2.13 Release Note.
Partially reverted changes made in XMLC-2.2.11 getElementById(String)
behavior. While the HTML and CHTML DOMs continued to maintain fallback recursion, in case the parser hadn't optimized getElementById(Sting)
behavior by storing elements with attributes of type ID in the internal Id map, the XHTML, VoiceXML, and WML DOMs had this recursive code removed since the validating parser would guarantee that Id elements get registered in the Id map. Unfortunately, when one clones/imports/adopts nodes, IDness is lost (see XERCESJ-1022 for details). Because IDness in these DOMs have not historically been defined by the DTD, but by recursing for elements with an "id" attribute, the lack of fallback recursion generates unexpected behavior; getElementById("MyId")
could return null for a cloned/imported/adopted node, even though an element with id="MyId"
exists in the document. The solution is to continue to use the optimized lookup first, but provide fallback recursion to maintain historical behavior. Keep in mind, though, that this fallback recursion behavior should not be expected in non-specialized DOMs. To re-establish IDness in a standard way, one can always use document.normalizeDocument()
with validation enabled or serialize and reparse.
DocumentLoaderImpl
, patch by Erik Rasmussen
Applied patch for feature request #306584 enabling DocumentLoaderImpl
extenders to override makeCacheKey(Class)
in order to customize template caching behavior, allowing for, among other things, dynamic runtime switching of templates per XMLC class.
Updated to Jaxen-1.1 final.