Instance Constructors
-
new
DocumentParserUsingStax(inputFactory: XMLInputFactory)
Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
val
inputFactory: XMLInputFactory
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
parse(inputStream: InputStream): Document
-
final
def
parse(file: File): Document
-
final
def
parse(uri: URI): Document
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any
StAX-based
Document
parser.Typical non-trivial creation is as follows, assuming a class
MyXmlResolver
, which extendsXMLResolver
, and a classMyXmlReporter
, which extendsXMLReporter
:A custom
XMLResolver
could be used to retrieve DTDs locally, or even to suppress DTD resolution. The latter can be coded as follows (compare with http://stuartsierra.com/2008/05/08/stop-your-java-sax-parser-from-downloading-dtds), risking some loss of information:A trivial
XMLReporter
could look like this:If more flexibility is needed in configuring the
DocumentParser
than offered by this class, consider writing a wrapperDocumentParser
which wraps aDocumentParserUsingStax
, but adapts theparse
method. This would make it possible to adapt the conversion from StAX events to yaidomDocument
, for example.A
DocumentParserUsingStax
instance can be re-used multiple times, from the same thread. If theXMLInputFactory
is thread-safe, it can even be re-used from multiple threads. Typically aXMLInputFactory
cannot be trusted to be thread-safe, however. In a web application, one (safe) way to deal with that is to use oneXMLInputFactory
instance per request.