도움이 될 수 있습니다. 그것은 기존의 .XSD에서 자바에서 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>
자바 클래스 :
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 of = new HelloFactoryImpl(); 하지만 이렇게하면 createGreetings 메서드가 누락됩니다. 나만 createGreetingsType (void)을 가지고있다. – user2311649