简单的Java到XML示例
我以前读过关于使用注释从Java生成XML的问题,但现在我找不到一个简单的示例。简单的Java到XML示例
如果我想让像XML文件:从我的java类
<x:element uid="asdf">value</x:element>
:
public class Element {
private String uid = "asdf";
private String value = "value";
}
我应该使用哪个注解来执行? (我有一个XML的架构,如果这有助于产生)
--update
的javax.xml.bind.annotation包有注释,“但我还是没有找到我要找的”:一个用法的例子.. :)
发现:
import java.io.FileOutputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlRootElement;
public class JavaToXMLDemo {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee object = new Employee();
object.setCode("CA");
object.setName("Cath");
object.setSalary(300);
m.marshal(object, System.out);
}
}
@XmlRootElement
class Employee {
private String code;
private String name;
private int salary;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int population) {
this.salary = population;
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</employee>
有各种工具,你可以用来做到这一点。 XStream(http://x-stream.github.io/)是一个相当容易使用的工具,它允许您使用注释来确定创建的XML的模式。
我想JDK包含的工具 – 2010-05-19 16:54:00
您将不得不离开JDK,您正在寻找的是一种定制序列化的工具 - 我认为这就是XStream所做的。而不是序列化去一个二进制不可读的乱七八糟,它转到XML。当然,这可能不会完全给你你正在寻找的东西,但这是我能想到的最接近的东西。例如, – 2010-05-19 17:02:02
不JAXB,做的工作? – 2010-05-19 17:59:35
对于任何人的利益否则达不到这个线,我想你做了以下内容:
@XmlRootElement
public class Element {
@XmlAttribute
private String uid = "asdf";
@XmlValue
private String value = "value";
}
更多信息
JAXB是大部分工作,但简单的作品在Android上更好:http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php – 2011-05-30 03:04:26