23 Ekim 2017 Pazartesi

JAXB @XmlID Anotasyonu

Giriş
Foo sınıfı Bar sınıfını içeriyor olsun.

@XmlID Anotasyonu
Bar sınıfı şöyledir.
import javax.xml.bind.annotation.*;

@XmlAccessorType(XmlAccessType.FIELD)
public class Bar {

  @XmlID
  @XmlAttribute
  private String id;

}
@XmlIDREF Anotasyonu
Foo sınıfı şöyledir.
import javax.xml.bind.annotation.*;

@XmlAccessorType(XmlAccessType.FIELD)
public class Foo {

  @XmlID
  @XmlAttribute
  private String id;

  @XmlIDREF
  @XmlAttribute
  private Bar reference;

}
XMl şöyledir. Foo sınıfı XML'den okurken reference alanını değeri C ise C değerine sahip Bar nesnesini okur. B ise B değerine sahip Bar nesnesini okur. Yoksa Bar alanı null olur.
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <foos>
    <foo id="B" reference="C"/>
    <foo id="A" reference="B"/>
  </foos>
  <bars>
    <bar id="C"/>
  </bars>
</root>

Hiç yorum yok:

Yorum Gönder