Been investigating when parsers call ignorableWhitespace -
Validating Parsers must use this method to report each chunk of whitespace in element content (see the W3C XML 1.0 recommendation, section 2.10): non-validating parsers may also use this method if they are capable of parsing and using content models.
Xerces validates, but I've not been able to get it to report ignorableWhitespace. libxml2 I've not been able to get to load an external DTD, and doesn't valid via its SAX API. With an internal DTD I can't get it to report whitespace, although it looks like it should. Expat reads external DTDs but doesn't validate or do content models. MSXML won't read external DTDs either.