2010-05-19 46 views
3

我以前讀過關於使用註釋從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

回答

1

發現:

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

1

有各種工具,你可以用來做到這一點。 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