초보자를위한 JAXB : Java를 사용한 XML 처리를위한 학습서
응용 프로그램이 서로 통신하려면 종종 데이터를 호환성이 높은 형식으로 변환해야합니다. 이를 위해 JAXB 라이브러리는 Java 아래 존재하며 오브젝트를 XML 파일로 처리합니다.
JAXB를 사용하여 XML 파일 생성-우수 사례
JAXB 는 Java Binding for XML Binding의 약자입니다. Java 객체를 XML 파일로 또는 그 반대로 변환 할 수 있습니다. 시작하기 전에 명심해야 할 몇 가지 사항이 있습니다.
- JAXB는 버전 1.6 이후 JRE 제품군의 필수 요소였습니다. 또한 Java 개발 환경은 버그를 수정했기 때문에 최신 상태 여야합니다.
- 익명 데이터 유형 뿐만 아니라 float, decimal 또는 negative integer 와 같은 기본 데이터 유형은 피하십시오. JAXB에는 이에 상응하는 것이 없습니다. 그렇지 않으면 개체, 숫자 데이터 형식, 목록 및 집합을 변환 할 수 있습니다. JAXB는 java.time.LocalDate 와 같은 복잡한 데이터 유형도 처리 할 수 없습니다. 특수하게 생성 된 어댑터 가 필요합니다.
- 전문 용어에서는 Java에서 XML 로의 방향을 마샬링 이라고하며 마샬링 해제 는 반대 방향을 나타냅니다 .
XML 주석
최신 비디오
초보자를위한 JAXB : CD 콜렉션 예제를 사용한 학습서
AudioCD.java : 오디오 CD의 속성이 여기에 정의되어 있습니다.
MusicDB.java : 음악 콜렉션은 오디오 CD 목록으로 구성됩니다.
튜토리얼은 XML로 출력되는 CD 모음에 관한 것입니다. 여러 오디오 CD로 구성되어 있습니다. 아티스트, 출시 연도, 앨범 이름 및 노래는 각 오디오 CD에 대해 기록됩니다.
- 먼저 오디오 CD의 데이터가 포함 된 클래스를 작성해야합니다. 여기에는 아티스트, 출시 년도, 앨범 및 CD에있는 노래가 포함됩니다.
- XML 형식으로 출력을보다 잘 제어하려면 Java에서 @로 시작하는 XML 주석이 필요합니다.
- XML 파일의 루트 요소는 다음 주석을 사용하여 지정할 수 있습니다. @XmlRootElement (name = "Audiocd")
- Java 속성의 대체 이름을 지정하는 getter 또는 setter 메소드 위에 주석을 삽입 할 수 있습니다. 예를 들어, 연도 속성 대신에 출판 연도를 출력해야합니다. @XmlElement (이름 = "연도 연도")
- 속성의 순서는 @XmlType 주석 (propOrder = { "artist", "title", "year", "songlist"})에 의해 결정 됩니다. 즉, 아티스트 이름이 XML 파일에서 먼저 표시되고 앨범 이름, 출시 연도 및 노래가 포함 된 목록이 나타납니다. 그렇지 않으면 순서는 Java 파일에 따라 다릅니다.
- 다음으로, 오디오 CD 목록이 포함 된 MusicDB 라는 새 Java 클래스를 작성하십시오. 음악 컬렉션의 이름과 음악 컬렉션의 위치도 여기에 기록됩니다. 원칙적으로 절차는 위에서 언급 한 Java 파일의 절차와 유사합니다.
Java 객체에서 XML 파일로
최신 비디오
AudioCDMain.java : 여기에 여러 개의 오디오 CD가 생성됩니다
AudioCDMain.java : 음악 컬렉션 만들기
AudioCDMain.java : 코드를 XML로 변환
변환 자체는 테스트 프로그램에서보다 정확하게 주요 방법으로 수행됩니다.
- 먼저 여러 개의 오디오 CD를 작성하도록 여러 개의 오디오 CD 인스턴스를 작성하십시오.
- MusicDB 유형 음악 컬렉션의 인스턴스도 필요합니다.
- 또한 JAXB는 루트 요소를 포함하는 Java 클래스를 알아야합니다. 우리의 경우에 이것은 MusicDB 클래스이다 : JAXBContext context = JAXBContext.newInstance (MusicDB.class);
- 변환은 위에서 언급 한 JAXB 메소드와 연관된 Marshaller 인스턴스를 사용하여 수행됩니다. Marshaller m = context.createMarshaller ();
- Marshaller 메소드는 XML 문서가 출력 형식화되는 등의 추가 옵션을 제공합니다. .setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
반대 방향으로 모든 것
최신 비디오
AudioCDMain.java : JAXB는 XML 파일에서 Java 객체를 생성합니다.
XML 파일은 이미 JAXB에 의해 형식화되었습니다
기본적으로 다른 방향으로의 변환도 비슷한 방식으로 진행됩니다.
- 먼저 unmarshaller 메소드의 인스턴스가 작성됩니다. unmarshaller at = context.createUnmarshaller ();
- 그런 다음 비 정렬 화 인스턴스에는 이전에 작성된 XML 파일의 이름이 필요합니다. MusicDB mdb2 = (MusicDB) um.unmarshal (new FileReader (MUSICDB_XML));