所以就開一篇來寫啦XD
JDK的Bin資料夾內有個叫做XJC的工具,它可以將XML Schema輸出成POJO
我們這邊資料用「XML Schema Tutorial」
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
輸入下方指令就會產生出POJO程式碼
xjc.exe path.xsd
ObjectFactory.java:
//
// 此檔案是由 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 所產生
// 請參閱 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// 一旦重新編譯來源綱要, 對此檔案所做的任何修改都將會遺失.
// 產生時間: 2019.05.20 於 02:58:44 PM CST
//
package generated;
import javax.xml.bind.annotation.XmlRegistry;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the generated package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: generated
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Note }
*
*/
public Note createNote() {
return new Note();
}
}
Note.java:
//
// 此檔案是由 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 所產生
// 請參閱 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// 一旦重新編譯來源綱要, 對此檔案所做的任何修改都將會遺失.
// 產生時間: 2019.05.20 於 02:58:44 PM CST
//
package generated;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>anonymous complex type 的 Java 類別.
*
* <p>下列綱要片段會指定此類別中包含的預期內容.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="to" type="{http://www.w3.org/2001/XMLSchema}string"/>
* <element name="from" type="{http://www.w3.org/2001/XMLSchema}string"/>
* <element name="heading" type="{http://www.w3.org/2001/XMLSchema}string"/>
* <element name="body" type="{http://www.w3.org/2001/XMLSchema}string"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"to",
"from",
"heading",
"body"
})
@XmlRootElement(name = "note")
public class Note {
@XmlElement(required = true)
protected String to;
@XmlElement(required = true)
protected String from;
@XmlElement(required = true)
protected String heading;
@XmlElement(required = true)
protected String body;
/**
* 取得 to 特性的值.
*
* @return
* possible object is
* {@link String }
*
*/
public String getTo() {
return to;
}
/**
* 設定 to 特性的值.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setTo(String value) {
this.to = value;
}
/**
* 取得 from 特性的值.
*
* @return
* possible object is
* {@link String }
*
*/
public String getFrom() {
return from;
}
/**
* 設定 from 特性的值.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setFrom(String value) {
this.from = value;
}
/**
* 取得 heading 特性的值.
*
* @return
* possible object is
* {@link String }
*
*/
public String getHeading() {
return heading;
}
/**
* 設定 heading 特性的值.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setHeading(String value) {
this.heading = value;
}
/**
* 取得 body 特性的值.
*
* @return
* possible object is
* {@link String }
*
*/
public String getBody() {
return body;
}
/**
* 設定 body 特性的值.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setBody(String value) {
this.body = value;
}
}
那這工具不錯用,或許也是我們快速去產生POJO的其中一種方法吧
參考資料:
https://www.w3schools.com/xml/schema_intro.asp
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/xjc.html