Hi,
I have completed the XMLStreamBuffer functionality to support its use in
StreamMessage and StreamSOAPDecoder and updated the rearch-2005 branch
to use the latest jar.
The StreamSOAPDecoder uses one stream buffer to cache all headers, and
marks (in the buffer) to each header are created (that also cache the
in-scope namespaces).
An XMLStreamReader implementation may then be used to process the mark
(see StreamHeader). The reader cannot process beyond the fragmant that
is marked.
I have tested roundtrip functionality on a number of documents (see the
xmlstreambuffer/roundtriptest directory) and everything works OK but I
have not explicitly tested the processing of fragments, with the
exception of a unit test that emulates the process code in
StreamSOAPDecoder. Some help with this testing StreamSOAPDecoder on a
range of SOAP messages would be much appreciated.
TODOs:
- Re-use of stream buffers. We should enable caching of stream buffers
for efficient reuse of memory. The easiest may be to maintain a
stateful decoder.
- More efficient implementation of in-scope namespace representation.
Currently a Map<String, String> is used, it would be more efficient to
use String[].
- Support XMLStreamReaderEx
Paul.
--
| ? + ? = To question
----------------\
Paul Sandoz
x38109
+33-4-76188109