JiBX 1.2,第2部分: 从XML模式到Java代码(二) - 编程入门网
。值 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |