私はここでどういうわけかトリッキーな状況にあります。一方で、この 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
}
このクラスには文字列プロパティが 1 つしかないため、Class ではなく String 型に置き換えるのが理にかなっています。
質問: テキスト クラスをスキップして代わりに String を使用し、既存の 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;
テキストクラスをラップできるが、xsd で有効であることを保持する jaxb の注釈はありますか?