Я хотел бы использовать XJC для создания объектов JAXB во время использования XmlJavaTypeAdapterКак создать @XmlSchemaType для элемента настроенного с XJC: javaType
Я в настоящее время используется в следующих глобальных привязок:
<xjc:javaType name="java.lang.Boolean"
xmlType="xsd:boolean"
adapter="path.to.my.CustomBooleanAdapter"/>
Он генерирует следующий код:
@XmlJavaTypeAdapter(CustomBooleanAdapter.class)
@XmlElement(type=String.class)
private Boolean finished;
Однако я хотел бы код, чтобы иметь @XmlSchemaType булевых и без типа @XmlElement строки
@XmlJavaTypeAdapter(BooleanAdapter.class)
@XmlSchemaType(name = "boolean")
private Boolean finished;
код адаптер:
public class CustomBooleanAdapter extends XmlAdapter<String, Boolean> {
@Override
public Boolean unmarshal(String s) {
if("true".equals(s) || "false".equals(s)){
return Boolean.valueOf(s);
}
return null;
}
@Override
public String marshal(Boolean c) {
return c == null ? null : c.toString();
}
}
Есть ли способ сказать XJC для создания @XmlSchemaType аннотации и удалить @XmlElement строчного типа
Не могли бы вы также разместить свой «CustomBooleanAdapter»? – lexicore
@lexicore Я добавил код адаптера выше, любые предложения будут оценены – indybee
Я думаю, что вы получаете 'String', потому что ваш адаптер является' Boolean' '' String'. Я думаю, вы могли бы переопределить аннотации с помощью аннотатного плагина, но сначала вопрос - почему? Какая-то конкретная причина для этого? Я имею в виду, вы вряд ли сгенерируете схему из своего кода, если используете XJC ... – lexicore