От новичка до гуру: Курсы программирования на CyberDuff

Как сопоставить элементы и атрибуты XML с помощью аннотаций JAXB?

Как сопоставить поля в аннотациях JAXB с элементами и атрибутами? У меня возникли проблемы с попыткой настроить мою модель в JAXB. Вот моя текущая модель:

Info.java:

package com.rest.model;

public class Info {

    private String a;

    private String b;

    private String c;

    private String d;

    public Info() {

    }

    /* ... insert JavaBean getters/setters here */
}

InfoList.java:

package com.rest.model;

public class InfoList {

    private List<Info> infos;

    public InfoList() {

    }

    /* ... insert JavaBean getters/setters here */
}

Это сериализуется следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infos>
    <info>
        <a>HELLO</a>
        <b>WORLD</b>
        <c>OLLEH</c>
        <d>DLROW</d>
    </info>
</streams>

Как я могу контролировать способ сериализации? Я пытался использовать аннотации, но мне удалось вызвать только IllegalAnnotationExceptions. Как бы я по существу взял эту модель, поскольку она автоматически отображается, и выразил бы это в аннотациях? В качестве альтернативы, как я могу изменить поля в классе Info для сопоставления с атрибутами XML?


Ответы:


1

По умолчанию JAXB будет искать аннотации в общедоступных средствах доступа. Если вы аннотируете поля, вы увидите исключение, которое вы получаете. Если вы хотите аннотировать поля, добавьте следующее:

@XmlAccessorType(XmlAccessType.FIELD)
public class Foo {

    @XmlAttribute
    private String a;

}

Для примера см.:

02.05.2011
Новые материалы

Отслеживание состояния с течением времени с дифференцированием снимков
Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

Игра в прятки с данными
Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

«Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

Все о кейсах: Camel, Snake, Kebab & Pascal
В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

Как работает дистанционное парное программирование и почему оно может изменить вашу жизнь
Серебряная пуля от одиночества и отвлекающих факторов во время обучения программированию Независимо от того, работаете ли вы или учитесь удаленно, велика вероятность, что одиночество и..