我的XML / XSD中的元素很少,如<TestElement tc="222">SomeValue</TestElement>
。根据XSD tc,它的值属于另一个只有键值对的元素。
<xsd:element ref="TestElement" minOccurs="0" />
<xsd:element name="TestElement" type="SUBTYPE_CODES" />
<xsd:complexType name="SUBTYPE_CODES">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="tc" use="required" type="TRANS_MODE_CODES_TC" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
默认情况下,JAXB以这种方式为此元素生成了具有两个String键和值的单独类。
JAXB生成的元素
@XmlElement(name = "TestElement")
protected SUBTYPECODES testElement;
属性类:
@XmlType(name = "SUBTYPE_CODES", propOrder = {
"value"
})
public class SUBTYPECODES {
@XmlValue
protected String value;
@XmlAttribute(name = "tc", required = true)
protected BigInteger tc;
}
现在每种类型的属性都有超过千个类。我将使用这些类作为Hibernate的实体类。
我想将它更改为JAXB类,如下所示,并删除所有属性特定的类。
protected String testElementTC;
protected String testElementValue;
如何在不影响编组/解组的情况下在JAXB生成的类中声明上述变量?