는 newInstance와 당신은 .. 여기 예제
아래 ...
public static void main(String[] args) throws JAXBException {
final JAXBContext context = JAXBContext.newInstance(Vehicals.class);
final Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
final Vehicals vehicals = new Vehicals();
List<Car> cars = new ArrayList<Car>();
Car c = new Car();
c.setName("Mercedes");
cars.add(c);
c = new Car();
c.setName("BMW");
cars.add(c);
vehicals.setCar(cars);
m.marshal(vehicals, System.out);
}
Vehicals를 예를 당신의 XML 매핑 클래스의 루트 요소를 추가해야합니다. java
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Vehicals {
private List<Car> Car;
public List<Car> getCar() {
return Car;
}
public void setCar(List<Car> cars) {
this.Car = cars;
}
}
Car.java
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement
public class Car {
@XmlTransient
private Long id;
private String name;
@XmlTransient
private String code;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
비 정렬 화에 대한 output.xml
<Vehicle>
<Car>
<name>Mercedes</name>
</Car>
<Car>
<name>BMW</name>
</Car>
</Vehicle>
같은 일이다. 내 경우에는 newInstance 메서드에서 매개 변수로 Vehicals를 추가했습니다.
하지만 너무 자주 자주하는 점은 다음과 같습니다. 왜 마샬링을 해제해야합니까? 어떤 데이터가 포함되어 있는지 모를 경우 : 사소한 방법으로 어떻게 처리 할 것을 제안합니까? - 일반적인 DOM 트리로 언 마샬링하는 경우에도 트리 크라이밍 이외에 무엇을 허용 할 것인지에 대한 아이디어가 필요합니다. – laune