XMLBeans帮助业务流程开发
在测试XML文件中,可以发现<xq:sumInsured>0</xq:sumInsured>,<xq:premium>0</xq:premium>,表示保单的保额,保费都还是0。而三个标的项都有数据,点击calculatePremium按钮,测试计算保额保费的WebService方法。察看测试结果。

使用XQuery实现数据转换
数据转换是指数据从一种格式向另一种格式的映射和转换。我们可以利用WebLogic Workshop 的 mapper 功能实现数据转换。一种数据转换可以具有多个源输入,但是只能有一个输出目标。例如,可以将数据从三个输入数据源转换到一个目标源,如下图所示。

创建转换文件
鼠标右键单击 process文件夹并从下拉菜单选择“新建”—>“转换文件”。



让我们看一下,转换对应的xquery文件:
打开TestView视图,填入测试数据,然后点击Test,可以直接测试这个转换方法。declare namespace ns0 = "http://temp.openuri.org/XMLBeansApp/PolicyInfo"
declare namespace ns1 = "http://temp.openuri.org/XMLBeansApp/RateQuote"
declare namespace ns2 = "http://temp.openuri.org/XMLBeansApp/Policy"
![]()
![]()
let -info1 := ,
-quote1 :=
where data(-info1/ns0:productID) = data(-quote1/ns1:product-rate[1]/ns1:productID)
return
<ns2:policy>
<ns2:policyID>...{ data(-info1/ns0:policyID) }</ns2:policyID>
<ns2:productName>...{ data(-info1/ns0:productName) }</ns2:productName>
<ns2:effDate>...{ data(-info1/ns0:effDate) }</ns2:effDate>
<ns2:expDate>...{ data(-info1/ns0:expDate) }</ns2:expDate>
<ns2:rate>...{ data(-quote1/ns1:product-rate[1]/ns1:rate) }</ns2:rate>
<ns2:sumInsured>...{ data(-info1/ns0:sumInsured) }</ns2:sumInsured>
<ns2:premium>...{ data(-info1/ns0:premium) }</ns2:premium>
<ns2:pay>...{ (-quote1/ns1:product-rate[1]/ns1:rate)*(-info1/ns0:premium) }</ns2:pay>
...{
let := -info1/ns0:customer
return
<ns2:customer>
<ns2:name>...{ data(/ns0:name) }</ns2:name>
<ns2:phone>...{ data(/ns0:phone) }</ns2:phone>
</ns2:customer>
}
...{
for -item1 in -info1/ns0:insured-item
return
<ns2:insured-item>
<ns2:name>...{ data(-item1/ns0:name) }</ns2:name>
<ns2:sumInsured>...{ (-item1/ns0:quantity)*(-item1/ns0:sumInsured) }</ns2:sumInsured>
<ns2:premium>...{ (-item1/ns0:quantity)*(-item1/ns0:premium) }</ns2:premium>
</ns2:insured-item>
}
</ns2:policy>
结束语
XMLBeans早已成为Apache的开源项目,通过高性能、开放源代码的实现,XMLBeans克服了将XML和Java一起使用的传统困难。此外,它还提供了有效性检验和可执行规范的功能。通过保持XML文档和Java对象的同步,XMLBeans提供了面向服务开发所需的Java和XML的结合。随着SOA在越来越多应用中的实施,相信XMLBeans一定会得到更广泛的应用。
本文通过一个保险实例流程的开发过程,介绍了如何使用XMLBeans在Web Service方法中处理XML,以及借助WebLogic的mapper工具方便地进行数据转换。
本文示例下载:XMLBeansApp.zip
0
相关文章