JiBX 1.2,第2部分: 从XML模式到Java代码(一) - 编程入门网
uot; price="9.50" id="GC1234905049"/>
<item quantity="1" price="8.95" id="AX9300048820"/>
</order>
JiBX 1.2,第2部分: 从XML模式到Java代码(一)(6)时间:2012-01-14 IBM Dennis Sosnoski下载包还包括一个简单测试程序,它在本文中显示为清单 4,用于演示如何使用 JiBX 解组 及编组 文档。编组是在内存中生成对象的 XML 表示的过程,可能包括从初始对象链接的对象;解组是编组的反向过程,它将通过 XML 表示在内存中构建一个对象(还有可能是一些链接的对象)。Ant run 目标将执行此测试程序,使用 清单 3 文档作为输入并把编组后的文档副本写到名为 out.xml 的文件中。 清单 4. 测试程序 public class Test { /** * Unmarshal the sample document from a file, compute and set order total, then * marshal it back out to another file. * * @param args */ public static void main(String[] args) { if (args.length < 2) { System.out.println("Usage: java -cp ... " + "org.jibx.starter.Test in-file out-file"); System.exit(0); } try { // unmarshal customer information from file IBindingFactory bfact = BindingDirectory.getFactory(Order.class); IUnmarshallingContext uctx = bfact.createUnmarshallingContext(); FileInputStream in = new FileInputStream(args[0]); Order order = (Order)uctx.unmarshalDocument(in, null); // compute the total amount of the order float total = 0.0f; for (Iterator<Item> iter = order.getItems().iterator(); iter.hasNext();) { Item item = iter.next(); total += item.getPrice() * item.getQuantity(); } order.setTotal(new Float(total)); // marshal object back out to file (with nice indentation, as UTF-8) IMarshallingContext mctx = bfact.createMarshallingContext(); mctx.setIndent(2); FileOutputStream out = new FileOutputStream(args[1]); mctx.setOutput(out, null); mctx.marshalDocument(order); System.out.println("Processed order with " + order.getItems().size() + " items and total value " + total); } catch (FileNotFoundException e) { e.printStackTrace(); System.exit(1); } catch (JiBXException e) { e.printStackTrace(); System.exit(1); } } } JiBX 1.2,第2部分: 从XML模式到Java代码(一)(7)时间:2012-01-14 IBM Dennis Sosnoski图 3 显示了运行 run 目标时应当会看到的输出: 图 3. Ant 构建 run 任务 这是 第 1 部分 中使用的同一个测试程序,并且同样具有第一部分教程中讨论的限制。就像在第 1 部分中一样,out.xml 文件包含了将解组原始文档获得的订单数据重新编组后生成的输出。 CodeGen 自定义简介 在本节中,您将了解自 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |