i'm looking for a quicking breakdown of the java xml api's. specifically sax, xerces, xalan, xml-apis, jdom, etc. i have an application that's using an xml document, and uses jdom to access it. the xml that we recieve doesn't include a dtd specification, and we add one into the document (direct manipulation of the string). the problem is that the dtd _may_ not always exist at the location we're putting in (we're considering moving from a exploded web app deployment to a ear deployment) this is what i'm using to get the jdom (i think) representation of the xml document. SAXBuilder builder = new SAXBuilder( xmlImpl ); builder.setValidation( validate ); return( builder.build( new InputSource( new StringReader( xml ) ) ) ); where xmlImpl=org.apache.xerces.parsers.SAXParser and validate=false i'd like to not have to use a dtd within the xml document, so if it's avoidable, that would be excellent. currently the parser seems to not like it if the stated dtd isn't where we've said it's going to be.