简单的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包有注释,“但我还是没有找到我要找的”:一个用法的例子.. :)

+0

JAXB是大部分工作,但简单的作品在Android上更好:http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php – 2011-05-30 03:04:26

发现:

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> 

来源:http://www.java2s.com/Code/JavaAPI/javax.xml.bind.annotation/javaxxmlbindannotationXmlRootElement.htm

有各种工具,你可以用来做到这一点。 XStream(http://x-stream.github.io/)是一个相当容易使用的工具,它允许您使用注释来确定创建的XML的模式。

+0

我想JDK包含的工具 – 2010-05-19 16:54:00

+1

您将不得不离开JDK,您正在寻找的是一种定制序列化的工具 - 我认为这就是XStream所做的。而不是序列化去一个二进制不可读的乱七八糟,它转到XML。当然,这可能不会完全给你你正在寻找的东西,但这是我能想到的最接近的东西。例如, – 2010-05-19 17:02:02

+2

不JAXB,做的工作? – 2010-05-19 17:59:35

对于任何人的利益否则达不到这个线,我想你做了以下内容:

@XmlRootElement 
public class Element { 

    @XmlAttribute 
    private String uid = "asdf"; 

    @XmlValue 
    private String value = "value"; 
} 

更多信息