我正在尋找一種從XML動態生成(意味着,每次其他java類)Java類的方法。最初的XML基於XSD,但結果類應該是一個bean。 實施例:代碼生成 - XML到Java
XSD(只是不久):
Configuration->configuration-item->name
->value
->type
->scope
->impl-class-info
基本上一個簡單PARAM與實現類名稱和配置項
XML(實施例)的列表:
<configuration>
<impl-class-info>desired.class.name.APPConfig</impl-class-info>
<configuration-item>
<name>ipOfSomeServer</name>
<type>string</type>
<value>8.8.8.8</value>
<scope></scope>
</configuration-item>
<configuration-item>
<name>portOfSomeServer</name>
<type>string</type>
<value>1099</value>
<scope></scope>
</configuration-item>
</configuration>
生成的java類應該是這樣的:
package desired.class.name;
import xxx.xxx.xxx.ConfigurationElement;
public class APPConfig extends ConfigurationElement {
private String ipOfSomeServer;
private String portOfSomeServer;
public void setIpOfSomeServer(String ipOfSomeServer){
this.ipOfSomeServer = ipOfSomeServer;
}
public void setPortOfSomeServer(String portOfSomeServer){
this.portOfSomeServer = portOfSomeServer;
}
public String getPortOfSomeServer(){
return this.portOfSomeServer;
}
public String getIpOfSomeServer(){
return this.ipOfSomeServer;
}
怎麼辦?我迷路了。我看JAXB,XStream,XMLBeans(可能不夠好),但它似乎並不是我所需要的。
的 「複雜的輸入XML」 也許通過XSLT轉換(我認爲),以一個簡單的
<desired.class.name.APPConfig>
<ipOfSomeServer>8.8.8.8</ipOfSomeServer>
<portOfSomeServer>1099</portOfSomeServer>
</desired.class.name.APPConfig>
但還有什麼比?
在此先感謝亞歷克斯
附:在嘗試了一些技巧之後,我挑戰了使用XSLT將XML轉換爲Text(語法上的Java類)。之前使用Maven和定義的XSD進行的XML驗證。
感謝大家的幫助。
你想在飛行中創建Java類嗎?你想怎麼處理它們,因爲它們在編譯時是不知道的,除了反射之外不能被訪問...... – Puce 2011-02-15 16:09:44
這個工具應該是開發前設置的一部分。一旦創建了類,用戶可以導入它們。 – Alex 2011-02-15 16:42:17
爲什麼JAXB不做這項工作?配置JAXB Maven插件/ Ant目標以從您需要的所有XSD創建所有類。 – Puce 2011-02-15 16:57:59