On Tue, Nov 14, 2017 at 9:54 AM,  <[email protected]> wrote:
> The regular UTF8 JSON Generator has a method:
>
> writeBinary(InputStream data, int dataLength)
>
> That supports reading an InputStream, converting the binary stream to
> Base64, and directly writing to the content output. Thereby saving some
> memory by not having to load the entire stream's contents into memory all at
> once.
>
> However, ToXmlGenerator does not implement this method. It only implements a
> writeBinary overload that takes an already existing byte[ ].
>
> Does anyone have a workaround that would allow me to achieve the same JSON
> functionality but using the XML mapper and Generator?

I think this is an oversight; when `InputStream` taking method was
added into base API,
XML backend was not modified.
In theory it should be possible to implement incremental encoder,
since Stax2 API does have method
for such write (either taking `InputStream`, or at least passing
chunks). There may be other issues
but I think you should file an issue for `jackson-dataformat-xml`
github repo and perhaps it could
be implemented.

I don't know if there's a work-around without modifications to
`XmlGenerator`, problem being that there
is some buffering and state keeping -- you can certainly write to
underlying XMLStreamWriter2, but
it is not certain that generator's state would remain in usable
condition when by-passing it.

-+ Tatu +-

>
>
> --
> You received this message because you are subscribed to the Google Groups
> "jackson-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to