The streaming API does not hold the entire document in
memory. It is actually composed of two separate interfaces,
xmlReader and xmlWriter. These operate more closely to
normal file handles. When using xmlReader, you are given
a reader object that you advance linearly through the file, examining
the current element. Similarly, with the xmlWriter, you give
it data, serially, that is written to the file or string.