자바 대상 과 XML 파일 간 의 변환
Marshaller 클래스 는 클 라 이언 트 응용 프로그램 이 자바 콘 텐 츠 트 리 를 XML 데이터 로 변환 할 수 있 도록 합 니 다.
package hb.jaxb;
public class Classroom {
private int id;
private String name;
private int grade;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public Classroom(int id, String name, int grade) {
super();
this.id = id;
this.name = name;
this.grade = grade;
}
public Classroom() {
super();
}
}
package hb.jaxb;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
private int id;
private String name;
private int age;
private Classroom classroom;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Classroom getClassroom() {
return classroom;
}
public void setClassroom(Classroom classroom) {
this.classroom = classroom;
}
public Student(int id, String name, int age, Classroom classroom) {
super();
this.id = id;
this.name = name;
this.age = age;
this.classroom = classroom;
}
//无参够着函数一定需要,否则JXBContext无法正常解析。
public Student() {
super();
}
}
주의:
1. 전환 이 필요 한 model 대상 은 반드시 @ XmlRootElement 주 해 를 추가 하고 그 안의 다른 대상 은 필요 하지 않 습 니 다.
2. 전환 이 필요 한 model 대상 은 매개 변수 가 없 는 구조 방법 이 있어 야 합 니 다. 이 대상 에서 인용 한 대상 을 포함 합 니 다.
3. 그 중에서 @ XmlRootElement (name = "Root") 는 xml 의 루트 요 소 를 표시 합 니 다. (name = "Root") 이것 은 xml 파일 과 요 소 를 다시 정의 합 니 다. 이 name 정의 가 없 으 면 xml 루트 요 소 는 기본적으로 대상 이름과 일치 합 니 다.
package hb.jaxb;
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import org.junit.Test;
public class TestJaxb {
@Test
public void beanToXML() {
Classroom classroom = new Classroom(1, "软件工程", 4);
Student student = new Student(101, "张三", 22, classroom);
try {
JAXBContext context = JAXBContext.newInstance(Student.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(student, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
@Test
public void XMLStringToBean(){
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>22</age><classroom><grade>4</grade><id>1</id><name>软件工程</name></classroom><id>101</id><name>张三</name></student>";
try {
JAXBContext context = JAXBContext.newInstance(Student.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Student student = (Student)unmarshaller.unmarshal(new StringReader(xmlStr));
System.out.println(student.getAge());
System.out.println(student.getClassroom().getName());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
JAXB(Java Architecture for XML Binding) 는 업계 의 표준 으로 XML Schema 에 따라 Java 클래스 를 생 성 할 수 있 는 기술 이다. 이 과정 에서 JAXB 는 XML 인 스 턴 스 문 서 를 자바 대상 트 리 로 거꾸로 생 성 하 는 방법 을 제공 하고 자바 대상 트 리 의 내용 을 XML 인 스 턴 스 문서 에 다시 쓸 수 있다. 다른 한편, JAXB 는 XML 모드 를 빠 르 고 간편 하 게 연결 하 는 방법 을 제공한다.자바 에 표시 하여 자바 개발 자가 자바 응용 프로그램 에서 XML 데이터 와 처리 함 수 를 편리 하 게 결합 할 수 있 도록 합 니 다.
JAXBCContext 클래스 는 JAXB API 의 클 라 이언 트 입구 점 을 제공 합 니 다. JAXB 바 인 딩 프레임 워 크 작업 을 실현 하 는 데 필요 한 XML/자바 바 인 딩 정 보 를 관리 하 는 추상 적 인 작업 을 제공 합 니 다. 이 작업 들 은 해체, 편성, 검증 을 포함 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useEffect 안에서의 리턴??인스타 클론하다가 또 다시 배운 기능이다. useEffect안에서 리턴을 한다?? 찾아보니 componentWillUnmount와 같은 효과를 낸다는 것이다. useEffect안에서 return을 하면 정리의 개념으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.