Lists Home |
Date Index |
> From: Caro, Samuel [mailto:Samuel.Caro@USAHQ.UnitedSpaceAlliance.com]
> I guess I left details out
> * I have to use JAXP 1.1.0
> * Some files will have a DOCTYPE and some won't
> * If a DOCTYPE is not provided I need to make it use a default DTD
> * Can't modify the files in any way.
There is no standard way to do this, and unfortunately the prevailing model
for parsers is to embed DTD validation into the parser in a black box
fashion rather than employing a layered processing model. If you must adhere
to JAXP 1.1 APIs, then you are out of luck.
However, I think the new Xerces 2 can do DTD validation on a stream of SAX
events. I haven't investigated this in depth, but you can try starting with
a faq they have (http://xml.apache.org/xerces2-j/faq-pcfp.html) and then
poke around a bit deeper and see if they support this. If this works, you
can just insert a SAX filter in the pipeline before the DTD validator, and
add your own DOCTYPE declaration to the event stream for any doc that does
not contain one.