这可能是有益的。这是从现有的.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