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 document.和Java beans之间进行数据传递的JAVA类库
JOX是一套用户XML document.和Java beans之间进行数据传递的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
大家好,我是讯享网,很高兴认识大家。
2025年巴菲特论市场先生
上一篇
2025-03-06 16:29
2025年XShell的安装及使用教程
下一篇
2025-01-15 19:44

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/126961.html