我正在尝试使用 hyperjaxb3 从此处可用的三个 .xsd(C14054.xsd、C14054CodeLists.xsd 和 C14054DataTypes.xsd)创建关系模式,然后从 XML <-> Java <-> Relational 编组数据。
与我评估过的非常昂贵的商业工具相比,hyperjaxb3 在创建关系模式方面已经做得更好——但我不能完全让它用 Enums 做我想做的事情。
例如,在 C14054.xsd 中,“Provider”元素引用“RECID”
<xs:element name="Provider">
<xs:complexType>
<xs:sequence>
<xs:element ref="RECID" minOccurs="1" maxOccurs="1" />
这又是 TYPE 'RECIDCodeType'
<xs:element name="RECID" type="RECIDCodeType" />
来自 C14054CodeLists.xsd
<xs:complexType name="RECIDCodeType">
<xs:simpleContent>
<xs:extension base="RECIDCodeContentType" />
</xs:simpleContent>
它扩展了 RECIDCodeContentType
<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>
- 枚举类型在数据库中创建为具有“HJID”和“VALUE_”列的“查找表”。表的主键是否可以是 VALUE_,而不是自动编号 HJID?
即,Provider.RECID(我更改了 bindings.xjb 中的列名)的唯一有效条目(在数据库层)可以是“14054”吗?
- 创建模式时,枚举值是否可以持久保存到关系表中?
即可以将 14054 作为一行添加到数据库中的 Sub purposecodetype.VALUE_ 列中吗?
非常感谢任何人都可以散发的光芒!