gpt4 book ai didi

java - 如何使用@XmlIDREF和@XmlID

转载 作者:行者123 更新时间:2023-12-02 05:02:55 25 4
gpt4 key购买 nike

我不太明白 @XmlIDREF@XmlID 如何协同工作。通过使用 XmlIDREF,我只创建对实际元素的引用。但是 XmlID 的用例是什么。

我想创建对 Publication 类的引用。使用 @XmlIDREF 注释出版物列表是否足够?

public class Author {

private String id;
private String name;
private List<Publication> publications = new LinkedList<>();

public Author() {
super();
}
@XmlElement
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@XmlElement
public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}
@XmlIDREF
public List<Publication> getPublications() {
return publications;
}

最佳答案

I want to create a reference to the class Publication. Is it enough to annotate the publication List with @XmlIDREF?

不,这只是您需要的一半。

  • 你已经有了这个:与@XmlIDREF您标记关系的引用一侧(从 Author 指向 Publication )。

    public class Author {

    ...

    @XmlIDREF
    @XmlElement(name = "publication")
    public List<Publication> getPublications() {
    return publications;
    }

    ...

    }
  • 您还需要标记引用一侧(Publication本身)通过使用 @XmlID 注释其属性之一,例如这样:

    public class Publication {

    ...

    @XmlID
    @XmlElement
    public String getId() {
    return id;
    }

    ...
    }

然后您就可以像下面的示例一样处理 XML 内容:

<root>
<publication>
<id>p-101</id>
<title>Death on the Nile</title>
</publication>
<publication>
<id>p-102</id>
<title>The murder of Roger Ackroyd</title>
</publication>
...
<author>
<id>a-42</id>
<name>Agatha Christie</name>
<publication>p-101</publication>
<publication>p-102</publication>
</author>
...
</root>

你看,XML 引用(如 <publication>p-101</publication> )映射到 Java 对象引用(在 List<Publication> publications 中)。

关于java - 如何使用@XmlIDREF和@XmlID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com