快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
个 — 这是简化数据模型的好开端。

自定义独立组件

到目前为止,您只看到了在整套模式中或者独立模式中应用的自定义示例。您还可以自定义 CodeGen,使其处理模式定义内 的特定组件,包括全局定义及嵌入到全局定义中的内容项。可用的自定义包括从数据模型中清除组件、更改组件使用的类或值的名称,以及更改组件的模式类型。

如果要控制模式,则从数据模型中清除组件的自定义不是特别有用 — 在那种情况下,直接更改模式始终更简单些。但是企业数据交换模式通常包括专用组件,这些专用组件可能不适合用于使用这些模式的特定应用程序,并且这些模式通常不在您的控制范围内。在这种情况下,使用自定义将允许您简化数据模型,而无需触及提供的模式。

组件自定义

模式组件的自定义方式是,把自定义元素与表示组件的模式定义元素关联在一起。您可以使用多种不同的方法建立自定义与模式元素之间的关联,因为在特定情况下,一种方法可能比另一种方法更方便。不过,关联有一部分是固定的:自定义元素的名称必须始终与模式组件元素名称相符。因此要自定义模式中的 <xs:element> 定义,您需要使用 <element 自定义元素(没有名称空间)。

清单 15 将显示来自 TimeCard 所引用的其他模式之一的定义,它很好地演示了单个组件的自定义。PersonNameType 包含几个简单的 xs:string 元素,以及一些带有复杂结构的其他元素。教程代码中使用的测试文档恰巧不包括这种类型的 Affix 或 AlternateScript 元素的任何实例,因此清除它们以简化生成的数据模型再合适不过。

清单 15. PersonName 模式

<xsd:complexType name="PersonNameType">
 <xsd:sequence>

  <xsd:element name="FormattedName" type="xsd:string" minOccurs="0"/>
  <xsd:element name="LegalName" type="xsd:string" minOccurs="0"/>
  <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
  <xsd:element name="PreferredGivenName" type="xsd:string" minOccurs="0"/>
  <xsd:element name="MiddleName" type="xsd:string" minOccurs="0"/>
  <xsd:element name="FamilyName" minOccurs="0" maxOccurs="unbounded">
   <xsd:complexType>
    ...
   </xsd:complexType>
  </xsd:element>
  <xsd:element name="Affix" minOccurs="0" maxOccurs="unbounded">
   <xsd:complexType>
    ...
   </xsd:complexType>
  </xsd:element>
  <xsd:element name="AlternateScript" minOccurs="0" maxOccurs="unbounded">
   <xsd:complexType>
    ...
   </xsd:complexType>
  </xsd:element>
 </xsd:sequence>
 <xsd:attribute name="script" type="xsd:string"/>
</xsd:complexType>

JiBX 1.2,第2部分: 从XML模式到Java代码(二)(7)

时间:2012-01-14 IBM Dennis Sosnoski

清单 16 显示了一种定义自定义以从数据模型中清除 Affix 和 AlternateScript 元素的方法。这种方法将使用路径指定,这是一种浏览模式定义结构的类似 XPath 的方向集合。路径步骤是通过斜杠(/)字符来分隔的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号