首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hyperjaxb3 :枚举问题

hyperjaxb3 :枚举问题
EN

Stack Overflow用户
提问于 2015-07-20 14:56:06
回答 1查看 113关注 0票数 1

我试图使用hyperjaxb3从三个.xsd (C14054.xsd、C14054CodeLists.xsd & C14054DataTypes.xsd) 可在这里找到创建关系模式,然后从XML <-> Java <->关系中封送数据。

hyperjaxb3在创建关系模式方面的工作已经比我评估过的一个非常昂贵的商业工具做得更好--但我无法让它用Enum来做我想做的事情。

例如,在C14054.xsd中,“Provider”元素引用“RECID”

代码语言:javascript
运行
复制
<xs:element name="Provider">
<xs:complexType>
  <xs:sequence>
    <xs:element ref="RECID" minOccurs="1" maxOccurs="1" />

它反过来又是“RECIDCodeType”类型

代码语言:javascript
运行
复制
<xs:element name="RECID" type="RECIDCodeType" />

来自C14054CodeLists.xsd

代码语言:javascript
运行
复制
<xs:complexType name="RECIDCodeType">
<xs:simpleContent>
  <xs:extension base="RECIDCodeContentType" />
</xs:simpleContent>

,它扩展了RECIDCodeContentType

代码语言:javascript
运行
复制
<xs:simpleType name="RECIDCodeContentType">
<xs:restriction base="xs:string">
  <xs:enumeration value="14054">
    <xs:annotation>
      <xs:documentation>
        <Label>2014/15 AP student record</Label>
      </xs:documentation>
    </xs:annotation>
  </xs:enumeration>
</xs:restriction>

  1. 枚举类型在数据库中创建为“查找表”,列为“HJID”和“VALUE_”。表的主键可以是VALUE_,而不是自动编号HJID吗?

也就是说,进入Provider.RECID的唯一有效条目(在数据库层)(我在bindings.xjb中更改了列名)是否可以是“14054”?

  1. 在创建模式时,Enum值是否可以持久化到关系表中?

也就是说,14054可以作为一行添加到数据库中的Subpurposecodetype.VALUE_列中吗?

非常感谢任何人所能散发的光芒!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-23 14:02:06

希望这能对未来的其他人有所帮助(谢谢你为我指明了正确的方向):

内联解决方案:

代码语言:javascript
运行
复制
<xs:simpleType name="RECIDCodeContentType">
<xs:annotation>
    <xs:appinfo>
        <hj:id />
    </xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:string">
  <xs:enumeration value="14054">
    <xs:annotation>
      <xs:documentation>
        <Label>2014/15 AP student record</Label>
      </xs:documentation>
    </xs:annotation>
  </xs:enumeration>
</xs:restriction>

外部绑定文件解决方案:

代码语言:javascript
运行
复制
<jaxb:bindings schemaLocation="C14054CodeLists.xsd" node="/xs:schema">
    <!-- RECIDCodeType : Make VALUE Primary Key -->
    <jaxb:bindings node="xs:simpleType[@name='RECIDCodeContentType']">
        <hj:id />
    </jaxb:bindings>
</jaxb:bindings>

结果:

代码语言:javascript
运行
复制
@Id
@Column(name = "VALUE_")
public String getValue() {
    return value;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31519715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档