JAXB бірнеше атрибуттарды бір түрге айналдырып, түрлендіреді

Image I have an element like this

масштаб және сан әрқашан бірге пайда болады, бірақ олар бірегей элементпен анықталмайды.

someElement элементін SomeElement java данасына жіберу кезінде SomeElement ішіндегі бір мүше number және scale .

Қазіргі уақытта нөмір мен масштаб атрибуттар болып табылады, содан кейін afterUnmarshall() әдісі бір санды есептеу үшін пайдаланылады.

Бұл екі элементтің ауқымы мен ауқымы болмаса, мұны істеу жолы бар ма? Мүмкін, XmlAdapter ? Бұл жағдайда қалай қолданамын?

1

2 жауаптар

Note: I'm the EclipseLink JAXB (MOXy) lead and a member of the JAXB 2 (JSR-222) expert group.

MOXy Java-дің өрісі/сипатын бірнеше xml түйіндері ретінде ұсынуға мүмкіндік беретін @XmlTransformation кеңейтімін ұсынады.

Қосымша ақпарат үшін

ЖАҢАРТУ

Я болмаса, осы пайдалану жағдайына XmlAdapter қолдануға болады. Адаптер біз сан мен ауқымға арналған жеке түрге ие бір түрге түрлендіретін сан мен ауқымды (төменде көрсетілген FOO ретінде) түрлендіруге жауапты боламыз. @XmlPath кеңейтімін пайдалану үшін MOXy бағдарламасының қолданылуын қажет етеді:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SomeElement {

    @XmlAttribute
    private String a;

    @XmlAttribute
    private String b;

    @XmlJavaTypeAdapter(NumberAndScaleAdapter.class)
    @XmlPath(".")
    private FOO numberAndScale;

    private Child child;

}

Қосымша ақпарат үшін

1
қосылды
Сілтеме енгізуді қолданамын және XmlReadTransformer-ді қолдануға мүмкіндік беретін MOXy кітапханасын ғана қосылдым. Бірақ ештеңе болмайды. Сондай-ақ, XmlWriteTransformer-ді пайдалануым керек пе немесе барлық JAXB өңдеуін MOXy-ге ауыстыру керек пе?
қосылды автор Franz Kafka, көзі
@FranzKafka - Бұл қолданба үшін JAXB провайдерін MOXy болу керек: blog.bdoughan.com/2011/05/…
қосылды автор Blaise Doughan, көзі
@BlaiseDoughan JCP шын мәнінде MOI үшін RI жасауды сендіре алмайсыз ба? Мен сенімдімін: D
қосылды автор G_H, көзі

бұл сұраққа жауаптар сіз істеп жатқан нәрсеге сәйкес келеді. Немесе кем дегенде кейбір кері. Сондықтан сіз XmlAdapter-ні пайдаланатын таңдамалы түрін жасай аласыз немесе сіз getter/setter логикасымен ұнамсыз бола аласыз.

1
қосылды