我在这里遇到了一个棘手的情况。一方面,我需要与这个 xsd 方案同步,另一方面,从这个 xsd 生成的类在某种程度上是无用的。
<xs:schema>
...
<xs:complexType name="Text">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
我从上面的 xsd 生成的类是这样的。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Text", propOrder = { "value" })
public class Text {
@XmlValue
protected String value;
.. getter .. setter
}
该类只有一个字符串属性,将其替换为 String 类型而不是 Class 是有意义的。
问题:我怎样才能跳过文本类并使用字符串,但保留现有的 xsd。
所以不要写这个:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Description", propOrder = { "content" })
public class Description{
@XmlElement(name = "Content")
protected Text content;
我想写这样的东西:
@XmlElement(name = "Content")
@MagicHere_ThisTypeMappToText
protected String content;
jaxb 中是否有一个注释允许我包装文本类但保留对 xsd 有效?