Parses the input stream into a yaidom Document.
Parses the input stream into a yaidom Document. Closes the input stream afterwards.
Parses the content of the given File into a eu.cdevreeze.yaidom.simple.Document.
Parses the content of the given File into a eu.cdevreeze.yaidom.simple.Document.
Parses the content of the given URI into a eu.cdevreeze.yaidom.simple.Document.
Parses the content of the given URI into a eu.cdevreeze.yaidom.simple.Document.
Returns an adapted copy having the passed ConverterToDocument.
Returns an adapted copy having the passed ConverterToDocument. This method makes it possible to use an adapted converter, which may be needed depending on the JAXP implementation used.
DOM-based
Documentparser.Typical non-trivial creation is as follows, assuming class
MyEntityResolver, which extendsEntityResolver, and classMyErrorHandler, which extendsErrorHandler:If we want the
DocumentBuilderFactoryto be a validating one, using an XML Schema, we could obtain theDocumentBuilderFactoryas follows:A custom
EntityResolvercould be used to retrieve DTDs locally, or even to suppress DTD resolution. The latter can be coded as follows (see http://stuartsierra.com/2008/05/08/stop-your-java-sax-parser-from-downloading-dtds), risking some loss of information:For completeness, a custom
ErrorHandlerclass that simply prints parse exceptions to standard output:If more flexibility is needed in configuring the
DocumentParserthan offered by this class, consider writing a wrapperDocumentParserwhich wraps aDocumentParserUsingDom, but adapts theparsemethod. This would make it possible to adapt the conversion from a DOMDocumentto yaidomDocument, for example.A
DocumentParserUsingDominstance can be re-used multiple times, from the same thread. If theDocumentBuilderFactoryis thread-safe, it can even be re-used from multiple threads. Typically aDocumentBuilderFactorycannot be trusted to be thread-safe, however. In a web application, one (safe) way to deal with that is to use oneDocumentBuilderFactoryinstance per request.