XStream支持对象序列化和反序列化,对象引用,包括循环引用。
XStream可以表示引用XML使用相对/绝对XPath或id。模式可以改变使用setMode():
xstream.setMode(XStream.XPATH_RELATIVE_REFERENCES); | (默认)使用XPath相对引用表示重复引用。这产生XML最少的杂乱。 |
xstream.setMode(XStream.XPATH_ABSOLUTE_REFERENCES); | 使用XPath绝对引用表示重复引用。这产生XML最少的杂乱。 |
xstream.setMode(XStream.SINGLE_NODE_XPATH_RELATIVE_REFERENCES); | 使用XPath相对引用表示重复引用。XPath表达式总是确保只选择单个节点。 |
xstream.setMode(XStream.SINGLE_NODE_XPATH_ABSOLUTE_REFERENCES); | 使用XPath绝对引用表示重复引用。XPath表达式总是确保只选择单个节点。 |
xstream.setMode(XStream.ID_REFERENCES); | 使用ID引用表示重复引用。在某些场景中,如使用手写的XML时,这是更容易使用。 |
xstream.setMode(XStream.NO_REFERENCES); | 这种禁用对象图支持和治疗对象结构就像一个树。复制被当作两个独立的对象的引用,循环引用导致异常。这是稍快,使用更少的内存比其他两种模式。 |