문제

XML을 Java 값 객체로 변환하기 위해 어떤 종류의 오픈 소스 라이브러리를 사용할 수 있습니까?

.NET에는 XML 직렬화 및 속성으로 쉽게이를 수행 할 수있는 방법이 있습니다. 나는 Java에서 어떤 유사점이 있다고 상상할 것입니다. DOM 또는 Sax 파서 로이 작업을 수행하는 방법을 알고 있지만 더 쉬운 방법이 있는지 궁금합니다.

이런 모습을 보이는 사전 정의 된 XML 형식이 있습니다.

<FOOBAR_DATA>
  <ID>12345</ID>
  <MESSAGE>Hello World!</MESSAGE>
  <DATE>22/04/2009</DATE>
  <NAME>Fred</NAME>
</FOOBAR_DATA>

.NET에서는 내 객체를 데이터에 바인딩하기 위해 이와 같은 작업을 수행 할 수 있습니다.

using System;
using System.Xml.Serialization;

    namespace FooBarData.Serialization
    {
      [XmlRoot("FOOBAR_DATA")]
      public class FooBarData
  {
    private int _ID = 0;
    [XmlElement("ID")]
    public int ID
    {
      get { return this._ID; }
      set { this._ID = value; }
    }

    private string _Message = "";
    [XmlElement("MESSAGE")]
    public string Message
    {
      get { return this._Message; }
      set { this._Message = value; }
    }

    private string _Name = "";
    [XmlElement("NAME")]
    public string Name
    {
      get { return this._Name; }
      set { this._Name = value; }
    }

    private Date _Date;
    [XmlElement("DATE")]
    public Date Date
    {
      get { return this._Date; }
      set { this._Date= value; }
    }

    public FooBarData()
    {
    }
  }
}

.NET 또는 아마도 최대 절전 모드와 유사한 주석을 사용하는 방법이 있는지 궁금해하여 값 객체를 사전 정의 된 -XML에 바인딩 할 수 있습니다.

도움이 되었습니까?

해결책

좋아요 xstream 특히 JAXB와 비교하여 ALOT- JAXB와 달리 XStream은 XSD를 가질 필요가 없습니다. XSD를 생성 할 필요가없고, 스키마에서 클래스를 생성하기 위해 jaxc를 실행할 필요가 없어도 XML로 직렬화되고 XML로 사라질 수있는 소수의 클래스가 있다면 좋습니다. 반면에 Xstream은 예쁘다. 경량.

(물론, JaxB가 적절한 곳이 많습니다.

다른 팁

JaxB XSD (XML Schema) 파일을 Java 클래스 모음으로 변환 할 수 있습니다. 이것은보다 "구조화 된"일 수 있습니다 XMLEncoder/Serializable Andy의 (우수한) 답변이 제공하는 접근.

Java는 있습니다 xmlencoder XML에 객체를 직렬화하는 데 사용할 수 있습니다. 유일한 요구 사항은 객체가 "직렬화 가능"을 구현하는 것입니다.

예는 다음과 같습니다.

http://www.developer.com/java/web/article.php/1377961

Jibx 또 다른 옵션입니다.

Java-to-XML 데이터 바인딩에 대한 자세한 내용은 참조하십시오 Java의 XML 직렬화?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top