java xml data binding

最然xmlbeans的java映射不是pojo的,不过感觉使用xmlbeans还是最快捷的。

jibx虽然是pojo,但那个中间class好像不怎么爽啊。

jaxb各个版本jdk搞的乱。

xstream功能上比较弱吧,但是比较傻瓜式。

Xmlbeans 根据schema 或者wsdl 生成映射bean的命令
scomp -out test.jar webservice.wsdlscomp -out test.jar Product.xsd

根据xml实例产生 xsd

inst2xsd -enumerations never ProductRequest.xml

JiBX tool

使用JiBX的步骤

先写java代码方向

1)书写java类,jibx.Customer.java

2)执行main函数 org.jibx.binding.BindingGenerator 传入参数

-f binding.xml jibx.Customer

3)执行main函数 org.jibx.binding.Compile 传入参数 binding.xml

4)执行main函数 org.jibx.binding.SchemaGenerator 传入参数 binding.xml

先写数据定义xsd方向

1)执行main函数 生成bingding.xml和java类 org.jibx.xsd2jibx.Generate 传入参数 yourXsd.xml

2)执行main函数 编译 org.jibx.binding.Compile 传入参数 binding.xml

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.jibx.runtime.BindingDirectory;
import org.jibx.runtime.IBindingFactory;
import org.jibx.runtime.IMarshallingContext;
import org.jibx.runtime.IUnmarshallingContext;
import org.jibx.runtime.JiBXException;

public class JibxTest {

public static void main(String[] args) throws JiBXException,
FileNotFoundException {
IBindingFactory bfact = BindingDirectory.getFactory(Customer.class);
// unmarshal customer information from file
IUnmarshallingContext uctx = bfact.createUnmarshallingContext();
FileInputStream in = new FileInputStream(“data.xml”);
Customer customer = (Customer) uctx.unmarshalDocument(in, null);
// marshal
customer.city = “Gz”;
IMarshallingContext mctx = bfact.createMarshallingContext();
mctx.setIndent(2);
FileOutputStream out = new FileOutputStream(“data1.xml”);
mctx.marshalDocument(customer, “UTF-8”, null, out);
}

}

生成binding:org.jibx.binding.BindingGenerator -f bind.xml org.jibx.starter.Customer
编译:org.jibx.binding.Compile bind.xml,编译后最好和原生的POJO打成同一个jar包内。
产生schema:org.jibx.binding.SchemaGenerator bind.xml
根据schema生成java类:org.jibx.xsd2jibx.Generate Customer.xsd

XMLBeans    http://xmlbeans.apache.org/
JiBX               http://jibx.sourceforge.net/
Castor            http://castor.org/
Jaxb               http://jaxb.dev.java.net/
Xstream        http://xstream.codehaus.org/
Apache Axiom            http://ws.apache.org/commons/axiom/
XML Pull Parsing       http://xmlpull.org/

原创文章,转载请注明: 转载自海波无痕

本文链接地址: java xml data binding

文章的脚注信息由WordPress的wp-posturl插件自动生成

此条目发表在javaee分类目录,贴了, , , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论链接可以 移除 nofollow.