`
x98zero
  • 浏览: 109878 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JOX是一套用户XML document.和Java beans之间进行数据传递的JAVA类库

    博客分类:
  • Java
阅读更多

JOX是一套用户XML document.和Java beans之间进行数据传递的JAVA类库。

一个简单直接的JOX实例:
JOX是非常的简单易用。假设你现在已经有了下面的Java Bean。
package com.wutka.jox.test;
import com.wutka.jox.*;
import java.util.*;
public class TestBean implements java.io.Serializable
{
protected int foo;
protected String bar;
protected java.util.Date baz;
protected Vector thingies;
protected TestSubbean subbean;
public TestBean()
{
bar = "";
baz = new Date();
thingies = new Vector();
}

public int getFoo() { return foo; }
public void setFoo(int aFoo) { foo = aFoo; }

public String getBar() { return bar; }
public void setBar(String aBar) { bar = aBar; }

public java.util.Date getBaz() { return baz; }
public void setBaz(java.util.Date aBaz) { baz = aBaz; }

public TestSubbean getSub() { return subbean; }
public void setSub(TestSubbean aSub) { subbean = aSub; }

public String[] getThingies()
{
String[] retThingies = new String[thingies.size()];
if (thingies.size() > 0) thingies.copyInto(retThingies);

return retThingies;
}

public void setThingies(String[] newThingies)
{
thingies = new Vector(newThingies.length);
for (int i=0; i < newThingies.length; i++)
{
thingies.addElement(newThingies[i]);
}
}

public String getThingies(int i)
{
return (String) thingies.elementAt(i);
}

public void setThingies(int i, String thingy)
{
thingies.setElementAt(thingy, i);
}

public String toString()
{
StringBuffer ret = new StringBuffer(
"foo="+foo+";bar="+bar+";baz="+baz.toString()+
";thingies=");
for (int i=0; i < thingies.size(); i++)
{
if (i > 0) ret.append(",");
ret.append((String) thingies.elementAt(i));
}

ret.append(";sub=");
ret.append(subbean.toString());

return ret.toString();
}
}

并且你已创建了下面的 XML 文件:
<?xml version="1.0"?>
<MarkTest>
<thingies>Moe</thingies>
<thingies>Larry</thingies>
<thingies>Curly</thingies>
<thingies>Shemp</thingies>
<thingies>Curly Joe</thingies>
<foo>5</foo>
<baz>6/25/00 12:46 AM</baz>
<bar>This is the bar value</bar>
<sub>
<age>35</age>
<name>Mark</name>
</sub>
</MarkTest>

下面的程序将读出XML并把数据存储于TestBean:
package com.wutka.jox.test;

import com.wutka.jox.*;
import java.io.*;

public class TestDeser
{
public static void main(String[] args)
{
try
{
FileInputStream in = new FileInputStream("bean.xml");

JOXBeanInputStream joxIn = new JOXBeanInputStream(in);

TestBean testBean = (TestBean) joxIn.readObject(
TestBean.class);

System.out.println(testBean);
}
catch (Exception exc)
{
exc.printStackTrace();
}
}
}

你现在能作的就是创建FileInputStream或者FileReader去读取XML文件,并且把它打包进JOXBeanInputStream或者JOXBeanReader。接着你就可以让JOX读这个对象和该对象的类。
写一个输出XML文件的BEAN就这么简单啦^_^:
package com.wutka.jox.test;

import com.wutka.jox.*;
import java.io.*;

public class TestSer
{
public static void main(String[] args)
{
try
{
TestBean b = new TestBean();
b.setFoo(5);
b.setBar("This is the bar value");
b.setThingies(new String[] {
"Moe", "Larry", "Curly", "Shemp", "Curly Joe" });
TestSubbean sub = new TestSubbean();
sub.setName("Mark");
sub.setAge(35);
b.setSub(sub);

FileOutputStream fileOut = new FileOutputStream("bean.xml");
JOXBeanOutputStream joxOut = new JOXBeanOutputStream(fileOut);

joxOut.writeObject("MarkTest", b);

joxOut.close();
}
catch (Exception exc)
{
exc.printStackTrace();
}
}
}

你必须在这个Java Bean中设置一些值,创建一个用于写XML文件的输出流,用JOXBeanOutputStream或者JOXBeanWriter规定这个输出流,并 写相应的对象。以后,你就不必重复做这些工作啦^_^。只要你有了DTD,JOX就可以根据这个DTD识别根标签了。
为了后面的例子,我假定你已经创建了下面的DTD文件了:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!ELEMENT MarkTest (Thingies*, foo?, BAR?, baz? S-U-B?)>

<!ELEMENT Thingies #PCDATA>
<!ELEMENT foo #PCDATA>
<!ELEMENT BAR #PCDATA>
<!ELEMENT baz #PCDATA>
<!ELEMENT S-U-B (age)>
<!ELEMENT age #PCDATA>
<!ATTLIST S-U-B name CDATA "">

下面的程序可以读取DTD文件并且传递给JOX,使JOX可以规范输出啦^_^:
package com.wutka.jox.test;
import com.wutka.jox.*;
import com.wutka.jox.dtd.*;
import java.io.*;

public class TestSerDTD
{
public static void main(String[] args)
{
try
{
TestBean b = new TestBean();
b.setFoo(5);
b.setBar("This is the bar value");
b.setThingies(new String[] {
"Moe", "Larry", "Curly", "Shemp", "Curly Joe" });
TestSubbean sub = new TestSubbean();
sub.setName("Mark");
sub.setAge(35);
b.setSub(sub);

FileOutputStream fileOut = new FileOutputStream("bean.xml");

FileReader reader = new FileReader("testbean.dtd");
Parser dtdParser = new Parser();

DTD dtd = dtdParser.parse(reader);
reader.close();

JOXBeanOutputStream joxOut = new JOXBeanOutputStream(dtd, fileOut);

joxOut.writeObject("MarkTest", b);

joxOut.close();
}
catch (Exception exc)
{
exc.printStackTrace();
}
}
}

分享到:
评论

相关推荐

    JOX实现XML和JavaBean相互转化

    用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java beans之间进行数据传递的JAVA类库。...

    用JOX实现xml和javabean的相互转换

    JOX(Java Object eXchange)是一套用于在XML文档和Java Beans之间进行数据交换的类库。这个库简化了XML解析和Java对象之间的转换过程,使得开发人员能够更便捷地处理XML数据,特别是在需要在不同系统间传输Java对象...

    JOX 处理xml文档.doc

    JOX(Java Object eXchange)是一个轻量级的库,专门用于XML和Java对象之间的转换。在Java编程中,XML常被用作数据交换格式,因为它具有良好的可读性和可扩展性。JOX提供了简单易用的API,使得开发者能够方便地将...

    jox-1.17b3.jar

    为了灵活的满足Web应用和Web services需求的变化,Java和XML的轻便性和可扩展性使它们成为解决这一问题的理想选择。SAX (Simple API for XML), DOM (document.nbspObject Model), XSL (Extensible Stylesheet ...

    javabean2xml实例与jox-1.17b3.jar

    JOX(Java Object eXchange)是一个轻量级的开源库,用于方便地在Java对象和XML之间进行转换。在Java开发中,我们经常需要将JavaBean对象的数据转化为XML格式,以便于数据交换、存储或网络传输。这个实例可能是为了...

    jox.jar包 是操作xml文件与javaBean的相互转化

    jox是一组java类库 实现javaBean与xml相互转化 更加容易

    JavaBean与xml转换所依赖jar包---Jox

    在开发过程中JavaBean与xml之间相互转换,jox给我们提供了很好的方便,但是jox官网已关闭,所以在这里方便大家下载使用;此资源中包含了jox所有依赖的jar包;解决xml中文格式化问题,JOXBeanOutputStream joxOut = ...

    javabean和xml互转详细文档+例子

    在实际项目中,有时我们需要在JavaBean和XML之间进行转换,以便于数据的持久化、网络传输或者跨平台交互。本篇文档将详细介绍如何使用jox-1.17b3.jar库来实现这一转换过程,并提供具体的例子。 1. **JavaBean到XML...

    jox 真正所有包(包含测试类)

    由于JavaBean具有高度的模块化和可重用性,它们成为了Java应用程序中数据传递和处理的首选方式。 XML是一种标记语言,它被广泛用于数据的存储和传输。XML的自描述性质使其成为交换结构化数据的理想选择,尤其是在...

    Jox bean与xml互相转换需要的jar包

    汇总了jox所有依赖的包,可以支持xml与javabean之间相互转换,我也是在逐步调试过程中,把这些包汇总上来的,jox的站点已经停止访问了,放在这里方便大家下载。生成的xml可以格式化还有中文解决等。...

    xml与javabean的转换

    Jox(Java Object to XML)是一个轻量级的Java库,专门用于在Java对象和XML之间进行转换。它提供了一种简单的方式来映射JavaBean属性到XML元素,反之亦然。在本例中,我们主要关注`BeanXmlMapping`工具类,它是Jox库...

    JOX(解决了日期格式转化和导出XML中文乱码问题)

    但java本身提供的操作xml的方式有些麻烦,而JOX能够自动的把javabean转为xml,不需要定义DTD,不需要关注bean中的各个属性,几行代码就搞定。同时,把xml转换回javabean也很方便。从网上搜了很久也没有一篇完整的...

    jox-1.17b3

    如果它是特定领域的工具,如游戏开发或科学计算,那么它可能会包含特定领域的算法和数据结构。 总之,jox-1.17b3是一个Java开发相关的软件包,可能是一个功能丰富的库,具有完整的集成,便于开发者直接使用。不过,...

    jox-1.16.jar

    jox-1.16.jar jox-1.16.jar

    jox1.6源码

    通过查看com包下的各个子包和类,我们可以发现jox1.6的功能模块划分,例如,`com.jox.serialization`可能是负责序列化的部分,而`com.jox.network`可能包含网络通信相关的类。 源码分析的过程也是学习软件工程实践...

    微信小程序组件,持续更新中jox-wxapp-master.zip

    微信小程序组件,持续更新中jox-wxapp-master.zip

    jox的简单例子

    找了好久,才配出了这个例子,这个还是一个国外网站的,不容易,例子写的很简单,容易理解,千万别错过,

    ADS各种教程总汇下载地址.txt

    链接:https://pan.baidu.com/s/1YJljQQULK0vfCm66EgQZ4A 密码:6jox ADS分享总汇1

    简易三相电源调压电路

    公网末端的用户往往面临用电高峰和低谷时电压波动严重的问题,这会直接影响这些设备的安全运行。为了解决电压不稳定带来的风险,本篇文章将介绍一个简易的三相电源调压电路设计,旨在确保用电设备在公网末端能够稳定...

Global site tag (gtag.js) - Google Analytics