XStream主 要应用于以下场合:
数据对象的持久化数据交换配置文件
XStream系 统架构分析
XStream的架构主要由四部分组成:
Converters(转换器)
当XStream遇 到需要轮换的对象时,它会委派给合适的转换器实现,XStream为通用类型提供了多种转换器实现,包括基本数据类型、String、 Collections、Arrays、null、Date,等等。
XStream提供了缺省的转换器,当需要转换 的数据对象没有匹配的转换器时会使用。是通过反射机制自动完成对对象内所有字段的映射。
IO(输入/输出)
XStream是 通过接口HierarchicalStramWriter和HierarchialStreamReader从底层XML数据中抽象而来的,上面的接口分 别用于序列化和反序列化操作。
该 特性使得XStream可 以直接使用XML解析类从数据流中读取数据,或者是直接从已经存在的结构中提取数据(比如DOM)。如果XStream所操作的 XML数据已经部分被其它XML解析类处理过了(比如SOAP类的实例),这样就可以避免在我们这一层的再次解析操作。
Context(上下文引用)
在XStream序列化或反序列化对象时,它会创建两个类MarshallingContext和 UnmarshallingContext,由它们来处理数据,以及委派合适的转换器。
XStream提 供了三对上下文的缺省实现,它们之间有着细微的差别。缺省值可以通过方法XStream.setMode()来改变,需要传递下面参数 中的一个:
XStream.XPATH_REFERENCES
(缺省的)通过XPath引用来标识重复的引用。这样产生的XML具有最小的混乱性。
XStream.ID_REFERENCES
使用ID引用来标识重复的引用。在一些场合,比如使用手写XML时,这样将会更易于操作
XStream.NO_REFERENCES
这种情况将失去对图形对象的支持,仅把对象看作为树型结构。重复的引用被视作两个不同的对象,循环引用会导致异常产生。相对于上面两种模式,这种模式速度 会更快,占用内存会更
数据对象的持久化数据交换配置文件
XStream系 统架构分析
XStream的架构主要由四部分组成:
Converters(转换器)
当XStream遇 到需要轮换的对象时,它会委派给合适的转换器实现,XStream为通用类型提供了多种转换器实现,包括基本数据类型、String、 Collections、Arrays、null、Date,等等。
XStream提供了缺省的转换器,当需要转换 的数据对象没有匹配的转换器时会使用。是通过反射机制自动完成对对象内所有字段的映射。
IO(输入/输出)
XStream是 通过接口HierarchicalStramWriter和HierarchialStreamReader从底层XML数据中抽象而来的,上面的接口分 别用于序列化和反序列化操作。
该 特性使得XStream可 以直接使用XML解析类从数据流中读取数据,或者是直接从已经存在的结构中提取数据(比如DOM)。如果XStream所操作的 XML数据已经部分被其它XML解析类处理过了(比如SOAP类的实例),这样就可以避免在我们这一层的再次解析操作。
Context(上下文引用)
在XStream序列化或反序列化对象时,它会创建两个类MarshallingContext和 UnmarshallingContext,由它们来处理数据,以及委派合适的转换器。
XStream提 供了三对上下文的缺省实现,它们之间有着细微的差别。缺省值可以通过方法XStream.setMode()来改变,需要传递下面参数 中的一个:
XStream.XPATH_REFERENCES
(缺省的)通过XPath引用来标识重复的引用。这样产生的XML具有最小的混乱性。
XStream.ID_REFERENCES
使用ID引用来标识重复的引用。在一些场合,比如使用手写XML时,这样将会更易于操作
XStream.NO_REFERENCES
这种情况将失去对图形对象的支持,仅把对象看作为树型结构。重复的引用被视作两个不同的对象,循环引用会导致异常产生。相对于上面两种模式,这种模式速度 会更快,占用内存会更