由于配置复杂性增加,我想为我的库的配置文件引入XML,并替换现有的属性文件。
我想
如果足迹不是问题,我会马上选择JAXB。是否有类似的库,占地面积较小?
编辑:根据占用空间,我并不是指消耗内存,而是以KB为单位的库的“大小”/类的数量。我希望我的相当简单的用例可以被一个大约5-6个类的库所覆盖。我不需要JAXB的全部功能。
答案 0 :(得分:3)
JAXB是足迹不足
JAXB(JSR-222)实现也作为Java SE 6的一部分包含在内。生成的类只是带有必要注释的POJO。在下面的问题中,海报观察到XMLBeans类比JAXB类大四倍。
减少课程数量
如果从Java类开始(而不是从XML模式生成它们),通常可以使模型更小。使用@XmlWrapperElement可以帮助消除类。
进一步减少课程数量
您可以在EclipseLink JAXB (MOXy)中使用@XmlPath注释,请注意我是技术主管。它利用XPath扩展JAXB映射:
答案 1 :(得分:2)
对于零依赖关系解决方案,请使用属于每个Java VM的DOM或SAX解析器。
如果您想要Java类型绑定,请坚持使用JAXB。即使你找到一个较小的库,你也会因为使用非标准的解决方案而没有经过广泛测试,或者有许多知道如何使用它的开发人员。
答案 2 :(得分:1)
如果您愿意考虑使用非XML技术,那么您可能需要查看我的Config4J库(www.config4star.org)。将它与您的愿望清单进行比较......
它提供了一种易于使用的模式语言。
jar文件很小(102KB),没有外部依赖。
您的愿望清单中缺少的一个功能是从架构定义自动生成Java类的工具。但是,Config4J的API很简单,我不确定你是否需要这样的代码生成器。 实用使用指南手册的第III部分( Config4JMS案例研究)描述了一种用于构建类似Spring的库以从配置信息创建Java对象的技术。