Java by API/javax.xml.bind.annotation/XmlAccessorType

Материал из Java эксперт
Перейти к: навигация, поиск

javax.xml.bind.annotation.XmlAccessorType

   <source lang="java">
 

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlValue; public class PersonOutput {

 public static void main(String[] args) throws JAXBException {
   Person p = new Person();
   p.setFirstName("B");
   p.setLastName("H");
   PersonName pn = new PersonName();
   pn.setValue("L");
   p.setFriend(pn);
   JAXBContext context = JAXBContext.newInstance(Person.class);
   context.createMarshaller().marshal(p, System.out);
 }

} @XmlRootElement() @XmlType(name = "") // @XmlAccessorType(XmlAccessType.FIELD) class Person {

 // @XmlAttribute()
 private String firstName;
 private PersonName friend;
 private String lastName;
 public String getFirstName() {
   return firstName;
 }
 @XmlElement(nillable = true)
 // @XmlElement(required=true)
 public PersonName getFriend() {
   return friend;
 }
 // @XmlValue()
 // @XmlTransient
 public String getLastName() {
   return lastName;
 }
 public void setFirstName(String s) {
   firstName = s;
 }
 public void setFriend(PersonName friend) {
   this.friend = friend;
 }
 // r @XmlTransient
 public void setLastName(String s) {
   lastName = s;
 }

} @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) class PersonName {

 @XmlValue
 private String value;
 public String getValue() {
   return value;
 }
 public void setValue(String value) {
   this.value = value;
 }

}


 </source>
   
  
 
  



XmlAccessType.NONE

   <source lang="java">
 

import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlValue; public class PersonUnmarshaller {

 public static void main(String[] args) throws JAXBException {
   JAXBContext context = JAXBContext.newInstance("person");
   Unmarshaller unmarshaller = context.createUnmarshaller();
   Person person = (Person) unmarshaller.unmarshal(new File("person.xml"));
   System.out.println(person.getFirstName());
 }

} @XmlRootElement() @XmlType(name = "") // @XmlAccessorType(XmlAccessType.FIELD) class Person {

 // @XmlAttribute()
 private String firstName;
 private PersonName friend;
 private String lastName;
 public String getFirstName() {
   return firstName;
 }
 @XmlElement(nillable = true)
 // @XmlElement(required=true)
 public PersonName getFriend() {
   return friend;
 }
 // @XmlValue()
 // @XmlTransient
 public String getLastName() {
   return lastName;
 }
 public void setFirstName(String s) {
   firstName = s;
 }
 public void setFriend(PersonName friend) {
   this.friend = friend;
 }
 // r @XmlTransient
 public void setLastName(String s) {
   lastName = s;
 }

} @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) class PersonName {

 @XmlValue
 private String value;
 public String getValue() {
   return value;
 }
 public void setValue(String value) {
   this.value = value;
 }
 public static void main(String[] args) throws JAXBException {
   PersonName pn = new PersonName();
   pn.value = "foo";
   JAXBContext context = JAXBContext.newInstance(PersonName.class);
   context.createMarshaller().marshal(pn, System.out);
 }

}


 </source>