list - 如何创建包含容器具有属性的列表的 POJO?

标签 list attributes jaxb pojo

如何创建包含容器具有属性的列表的 POJO?

通常在创建列表的 POJO 时,您可以按以下方式进行:

表示以下 XML 结构:

<folder>
    <messages>
        <message>
            <subject>XXXX</subject>
            ...
        </message>
        <message>
            <subject>XXXX</subject>
            ...
        </message>
    </messages>
</folder>
@XmlRootElement(name = "folder")
public class Folder {
    @XmlElement
    private List<Message> messages;
    ...
}
@XmlRootElement(name = "message")
public class Message {
    @XmlElement
    private String subject;
    ...
}

但是当 messages 标签上有属性时,你如何表示一个 POJO?即

<folder>
    <messages total="45" start="3">
        <message>
            <subject>XXXX</subject>
            ...
        </message>
        <message>
            <subject>XXXX</subject>
            ...
        </message>
    </messages>
</folder>

您是否专门为消息创建了一个 POJO,然后使用 @XmlValue 或类似的注释映射了一个消息列表?

感谢您的帮助。

最佳答案

以下方法可用于任何 JAXB (JSR-222) 实现。

消息

仅使用标准 JAXB (JSR-222) API,您需要将 Messages 类引入您的模型。

import java.util.List;
import javax.xml.bind.annotation.*;

public class Messages {

    @XmlElement(name="message")
    private List<Message> messages;

    @XmlAttribute
    private int start;

    @XmlAttribute
    public int getTotal() {
        if(null == messages) {
            return 0;
        } else {
            return messages.size();
        }
    }

}

文件夹

然后您需要修改您的 Folder 类以引用新的 Messages 类。

import javax.xml.bind.annotation.*;

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

    private Messages messages;
}

留言

import javax.xml.bind.annotation.*;

@XmlAccessorType(XmlAccessType.FIELD)
public class Message {

    private String subject;

}

关于list - 如何创建包含容器具有属性的列表的 POJO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372107/

相关文章:

python - 转换数组,转换为字符串,返回数组

perl - 如何从 Perl 中的映射返回哈希引用列表?

javascript - 延迟属性(Chrome)

java - 一般更改 JaxB 类名映射

java - 如何在不编码的情况下验证 JAXB 2.0 中的模式?

java - Swing 中的虚拟列表框

php - 仅带css的样式列表,不带js等

python - python中有 "standard"基础类吗?

wordpress - WooCommerce:日期作为属性术语

java - 如何从文件中的原始 xml 负载中解码 SoapFault?