快速业务通道

JiBX 1.2,第1部分: 从Java代码到XML模式 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
定义基本名称空间,而第二个属性将防止根据 Java 包修改名称空间的一般行为。这些属性都是通过嵌套自定义元素继承的,因此可以将其轻松地放到 <package> 元素中,而不是放在 <custom> 元素中。

JiBX 1.2,第1部分: 从Java代码到XML模式(16)

时间:2012-01-14 IBM Dennis Sosnoski

您可以通过使用 Ant custgen3 目标生成绑定和模式,并使用 run3 目标运行测试(在使用标准 bind 目标运行 JiBX 绑定编译器后 — 或者使用 full3 目标执行整个过程),尝试执行 清单 11 中的自定义。清单 12 显示了用于测试代码的输入文档:

清单 12. 带有自定义名称及名称空间的 XML 样例

<order order-date="2008-10-18" ship-date="2008-10-22" xmlns="http://jibx.org/custom">  <order-num>12345678</order-num>  <customer>    <customer-number>5678</customer-number>    <first-name>John</first-name>    <last-name>Smith</last-name>  </customer>  <bill-to state="WA" post-code="98059">    <street1>12345 Happy Lane</street1>    <city>Plunk</city>    <country>USA</country>  </bill-to>  <shipping>PRIORITY_MAIL</shipping>  <ship-to state="WA" postCode="98034">    <street1>333 River Avenue</street1>    <city>Kirkland</city>  </ship-to>  <order-items>    <line-item quantity="1" price="5.99" id="AC4983498512"/>    <line-item quantity="2" price="9.50" id="IW2349050499"/>    <line-item quantity="1" price="8.95" id="RC3000488209"/>  </order-items></order>

如果比较 清单 12 与 清单 10 中的样例,您将看到最新的自定义如何更改了表示。

自定义模式表示

现在,您已经了解了 BindGen 自定义如何更改 Java 数据的 XML 表示。自定义还可用于控制实际模式结构的某些方面。

回想一下,BindGen 默认对全局类型和元素优先使用嵌套定义。如果回顾 清单 9 生成的模式,您将看到此嵌套结构。模式仅使用三个全局定义:address 和 order 复杂类型以及 order 元素。Java 数据结构中的其他类(Customer、Item 和 Shipping)都只在 Order 类中引用一次,因此相应的类型定义是直接嵌入在 order 模式类型定义中的。

您可以在任意嵌套自定义元素中使用 force-mapping="true" 属性来更改模式样式。清单 13 显示了 custom4.xml 自定义文件,该文件将把此更改添加到匹配 清单 9 生成的模式的 custom2.xml 自定义中:

清单 13. 模式结构的自定义

<custom property-access="true" force-mapping="true">  <package name="org.jibx.starter">    <class name="Address" includes="street1 street2 city @state @postCode country"        requireds="street1 city"/>    <class name="Customer" includes="customerNumber firstName lastName"        requireds="lastName firstName /customerNumber"/>    <class name="Item" excludes="description" requireds="@id quantity price"/>    <class name="Order" requ

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号