Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38136
  • 博文数量: 21
  • 博客积分: 1971
  • 博客等级: 上尉
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-15 16:23
文章分类

全部博文(21)

文章存档

2011年(21)

分类: Java

2011-03-11 17:29:35

BetwixtはJavaBeansを簡単にXMLに書き出すためのAPIです。また読み込むことも可能です。(厳密にはCommons Digesterを使うのだけど)

 Primitive(intとかString)だけなら、とにかく非常に簡単に始められます。

XMLスキーマやDTDがないXMLを読み書きするならBetwixtがいい選択になると思います。

ここでは ver0.6を元に説明します。

【公式サイト】

準備

以下のパッケージ(API)をダウンロードしてjarファイルをパスに追加する必要があります。

ダウンロードはから行えます。

バージョンはその時点で一番近いものを、ファイル形式はzipでもtar.gzでも同じです。


■Commons BetWixt 0.6

commons-betwixt-0.6.jar

■BeanUtils 1.7.0

commons-beanutils.jar

■Commons Collections 2.1.1

commons-collections-2.1.1.jar

■Commons Digester 1.6

commons-digester.jar

■Commons Logging 1.0.4

commons-logging.jar


サンプル

実行すると以下のようにファイル c:\tmp\p.xml と画面に以下のように出力されます。

Tom Jim Java Code

配列を扱うときは、addとgetを用いますが、getの場合は、後にsをつけるとか、Listをつけるなどした方がすっきりします。

public void addFrend(Frend num);

public Frend[] getFrends();public Frend[] getFrendList();


■test.Person.java

/* * Created on 2004/10/05 * Author aki@ * License Apache2.0 or Common Public License */ package test; import java.io.File; import java.io.FileWriter; import java.util.List; import java.util.Vector; import org.apache.commons.betwixt.BindingConfiguration; import org.apache.commons.betwixt.io.BeanReader; import org.apache.commons.betwixt.io.BeanWriter; public class Person { public static final void main(String args[]) throws Exception{ String path="c:\\tmp\\p.xml"; //Configを作成 (idを出力しない) 省いてもいい。 BindingConfiguration config=new BindingConfiguration(); config.setMapIDs(false); BeanWriter writer = new BeanWriter(new FileWriter(path)); writer.setBindingConfiguration(config); writer.writeXmlDeclaration(""); //JavaBeanの値を設定 Person person=new Person(); person.setName("Huck"); person.addFrend(new Frend("Tom")); person.addFrend(new Frend("Jim")); //書き出し writer.write(person); writer.close(); //XMLからJavaBeanを作成 BeanReader reader=new BeanReader(); reader.registerBeanClass(Person.class); Person map=(Person)reader.parse(new File(path)); //コンソールに出力して内容を確認 BeanWriter writer2 = new BeanWriter(); writer2.writeXmlDeclaration(""); writer2.setBindingConfiguration(config); writer2.write(map); writer2.close(); } public Person(){ frendList=new Vector(); } public int getAge() { return age; } public void setAge(int value) { this.age = value; } private String name; private int age=25; List frendList; public void addFrend(Frend num){ frendList.add(num); } public Frend[] getFriends(){ Friend number[]=new Friend[friendList.size()]; for (int i = 0; i < number.length; i++) { number[i]=((Friend)friendList.get(i)); } return number; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

■test.Friend.java

package test; /* * Created on 2004/10/05 * Author aki@ * License Apache2.0 or Common Public License */ /** * * */ public class Friend { String name; public Friend(){ } public Friend(String v){ this.name=v; } public String getName() { return name; } public void setName(String v) { this.name = v; } } FAQXML宣言はどうやって書くのかwriter.writeXmlDeclaration(""); 出力時のid属性はどうやって消すの?BindingConfiguration config=new BindingConfiguration(); config.setMapIDs(false); BeanWriter writer = new BeanWriter(fw); writer.setBindingConfiguration(config); 関連

阅读(763) | 评论(0) | 转发(0) |
0

上一篇:搭建SVN服务端

下一篇:没有了

给主人留下些什么吧!~~