快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
。值 any-handling="discard" 只忽略生成的数据模型中的 <xs:any>,并在出现解组时丢弃与 <xs:any> 对应的所有元素。any-handling="dom" 将匹配默认处理,使用 org.w3c.dom.Element 表示匹配 <xs:any> 的元素。最后,any-handling="mapped" 将生成代码,要求每个匹配 <xs:any> 的元素都有一个全局模式定义(大致对应于 processContents="strict" 模式条件)。在这最后一种情况中,数据模型将使用 java.lang.Object 表示元素,并且对象的实际运行时类型匹配全局模式定义。

<xs:simpleType> 处理

和大多数通过模式生成代码的方式一样,CodeGen 将忽略或者只部分处理 <xs:simpleType> 定义的许多方面。<xs:simpleType> 限制就是这类有限支持的一个例子。在模式所定义的各种 simpleType 限制(包括长度限制、值范围,甚至正则表达式模式)中,只有 <xs:enumeration> 限制目前是在生成的数据模型中强制执行的。

CodeGen 目前也忽略 <xs:simpleType> <union>。清单 10 显示了匹配 <xs:union> 引用的生成的代码,以及匹配代码的初始模式片段(位于清单底部)。您可以在清单 10 中看到,每个指向联合(union)类型(包括清单中所示的 TimeCardDuration 类型和 AnyDateTimeType)的引用在生成的代码中是用简单的 String 值表示的。

清单 10. <xs:union> 生成的代码样例及原始模式

/**
   * Schema fragment(s) for this class:
   * <pre>
   * <xs:element xmlns:ns="http://ns.hr-xml.org/2007-04-15" 
   *  xmlns:xs="http://www.w3.org/2001/XMLSchema" name="TimeInterval">
   *  <xs:complexType>
   *   <xs:sequence>
   *    <xs:element type="ns:EntityIdType" name="Id" minOccurs="0"/>
   *    <xs:element type="xs:string" name="StartDateTime"/>
   *    <xs:choice>
   *     <xs:sequence>
   *      <xs:element type="xs:string" name="EndDateTime"/>
   *      <xs:element type="xs:string" name="Duration" minOccurs="0"/>
   *     </xs:sequence>
   *     <xs:element type="xs:string" name="Duration"/>
   *    </xs:choice>
   *    ...
   * </pre>
   */
  public static class TimeInterval
  {
    private EntityIdType id;
    private String startDateTime;
    private int choiceSelect = -1;
    private final int END_DATE_TIME_CHOICE = 0;
    private final int DURATION_CHOICE = 1;
    private String endDateTime;
    private String duration;
    private String duration1;
    ...

  ...
  <xsd:element name="TimeInterval">
   <xsd:complexType>
    <xsd:sequence>
     <xsd:element name="Id" type="EntityIdType" minOccurs="0"/>
     <xsd:element name="StartDateTime" type="AnyDateTimeType"/>
     <xsd:choice>
      <xs

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