JiBX 1.2,第2部分: 从XML模式到Java代码(二) - 编程入门网
个 — 这是简化数据模型的好开端。
自定义独立组件 到目前为止,您只看到了在整套模式中或者独立模式中应用的自定义示例。您还可以自定义 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |