Java 中的 XML: 数据绑定,第 1 部分:代码生成方法 — JAXB 及其它
2010-03-25 00:00:00 来源:WEB开发网现在,用 Castor 来生成源代码这种方法的主要缺点是对定制的支持有限。这种情形正在开始发生转变,可以用 Castor 的映射数据绑定方法来实现实质的定制,我期望最终在定制方面至少与源代码生成方法具有同样的灵活性。从长远来看,这将使它的适应性比 JAXB 更强。
Castor 按照 BSD 样式的许可证进行发布,完全可用于商业用途,而没有什么重大限制。它看起来相当稳定,但每当遇到需要修正错误时,您将需要更新到最新的开发代码(或等待新的 beta 测试发行版)。
JBind
与 JAXB 和 Castor 类似,JBind 根据 XML 文档的 Schema 描述来生成绑定代码。尽管具有这种相同的性质,但实际上 JBind 的着重点与前两个大不相同。JBind 的主要创建者 Stefan Wachter 称此着重点为“XML 代码”,他是这样描述它的:它将由 Schema 所描述的 XML 数据和由 Java 语言代码所实现的行为组合在了一起。JAXB 和 Castor 更多地着重于使 Java 语言应用程序方便地使用 XML,而 JBind 是围绕 XML 构建应用程序代码框架。一旦 JBind 构建好框架,则可以用自己的代码扩展它来添加功能。
图 5. JBind 生成的类图(单击进行放大)
JBind 还 可以 用于常规的数据绑定,在第 2 部分所讨论的性能测试中,我就是以这种方式用 JBind 的。但这样做略微有点笨拙,部分原因是由于 JBind 总是需要在运行时处理文档的 Schema。如果实例文档不直接引用相应的 Schema,则需要使用特殊的映射文件,或在读取实例文档之前,用手工将正确的 Schema 装入到自己的代码。目前的文档不会真正向您显示这是如何做的。与其它数据绑定框架相比,对处理绑定文档结构的更改,JBind 也很严格。通过使用 ListIterator ,可以删除现有的元素对象,但只有使用生成的 create(创建)方法才能创建新的元素对象,这些方法自动地将这些元素对象添加到现有内容的后面。
更多精彩
赞助商链接