這可能是有益的。這是從現有的.XSD Java創建XML文件的例子
的XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
jxb:version="2.0">
<xsd:element name="Greetings" type="GreetingListType"/>
<xsd:complexType name="GreetingListType">
<xsd:sequence>
<xsd:element name="Greeting" type="GreetingType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GreetingType">
<xsd:sequence>
<xsd:element name="Text" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="language" type="xsd:language"/>
</xsd:complexType>
</xsd:schema>
Java類:
import java.util.*;
import javax.xml.bind.*;
import hello.*;
public class Hello {
private ObjectFactory of;
private GreetingListType grList;
public Hello(){
of = new ObjectFactory();
grList = of.createGreetingListType();
}
public void make(String t, String l){
GreetingType g = of.createGreetingType();
g.setText(t);
g.setLanguage(l);
grList.getGreeting().add(g);
}
public void marshal() {
try {
JAXBElement<GreetingListType> gl =
of.createGreetings(grList);
JAXBContext jc = JAXBContext.newInstance("hello");
Marshaller m = jc.createMarshaller();
m.marshal(gl, System.out);
} catch(JAXBException jbe){
// ...
}
}
}
例子:
Hello h = new Hello();
h.make("Bonjour, madame", "fr");
h.make("Hey, you", "en");
h.marshal();
輸出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Greetings>
<Greeting language="fr">
<Text>Bonjour, madame</Text>
</Greeting>
<Greeting language="en">
<Text>Hey, you</Text>
非常感謝您的快速響應。它已經幫了我一些,但我仍然有點困難。爲什麼對象「of」是ObjectFactory類型的,而不是類型HelloFactory,我可以在我生成的類中找到它。所以我創建了:HelloFactory = new HelloFactoryImpl();但如果我這樣做,我錯過了createGreetings方法。我只有createGreetingsType(void) – user2311649 2013-04-24 14:20:55