Have you ever done any experiments (or thought experiments) with serializing or persisting XdmValue , XdmNode, or the ValueRepresentation or NodeInfo ?
Consider this use case.
Suppose I have a lot of XdmValue objects (probably nodes, documents but suppose any) which are long lived in the JVM. Suppose I'd like to "swap them out" to a file to clean up the memory space for a while, then swap them in later on demand. Maybe some might never be used later. Certianly I could write them out as Text (if they are documents or nodes, or wrap sequences/values in document nodes), and while there is risk of loss of information doing this I suspect if I were careful enough I could get it to work.
But what about some sort of binary dump ? Suppose it was the internal TinyTree format and I didn't need the serialized form to be usable in another instance. That way I could avoid saving the NamePool. I would guess that this could be quite a lot more efficient in space and time then serializing and parsing later.
I have read from previous posts that serializing compiled XSLT stylesheets is not much of a win vs text and parsing. But what about NodeInfo or Value ?
Thanks for any thoughts or ideas.
The Saxon Ptree (persistent tree) format was designed expressly for this purpose. It's not very widely used, but I think there's a significant benefit over serializing as XML and reparsing, especially if you want to retain type information.
Another use case is passing documents between processes running on different machines, for example a more efficient way of encoding the response to a web service request.