どのように私はJavaの値オブジェクトにXMLを変換するのですか?

StackOverflow https://stackoverflow.com/questions/779755

  •  13-09-2019
  •  | 
  •  

質問

オープンソースライブラリのどのようなJavaの値オブジェクトにXMLを変換するために利用されていますか?

.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()
    {
    }
  }
}

私は事前に定義された、XMLに私の値オブジェクトをバインドすることができますHibernateは、おそらく.NETまたはに似た注釈を、使用方法、があった場合、私は思っていた。

役に立ちましたか?

解決

私は特にJAXBに比べ、 XStreamのをたくさん好き - JAXBとは異なり、XStreamのはにあなたを必要としません。 XSDを持っています。あなたがシリアライズとXMLをデシリアライズしたいクラスの一握りを持っている場合は、他の手がかなりあるには、などそのスキーマ、XStreamのからクラスを生成するために実行jaxcをXSDを作成する必要の強引ネスずに、素晴らしいことです軽量ます。

(もちろん、そのようなあなたが機会...に合った既存のXSDを持っているときのようにJAXBが適切である時代、たくさんのがあります)。

他のヒント

JAXB には、XMLスキーマ(XSD)Javaクラスのコレクションにファイルを変換することができます。これは、アンディの(素晴らしい、方法で)答えが提供するXMLEncoder / Serializableのアプローチよりも多くの「構造化」であってもよい。

Javaはあなたがかもしれないと XMLEncoder にありXMLにオブジェクトをシリアル化するために使用することができます。唯一の要件は、あなたのオブジェクトが実装していることである「シリアライズ。」

ここでは一例です。

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

JiBXのの別のオプションです。

JavaからXMLデータの詳細については意見が結合、Javaで XMLシリアル化を参照してください?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top