[英]convert xml to java object using JAXB
我有以下XML,並希望將其轉換為Java對象。
<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<datasource jndi-name="java:jboss/datasources/FDMS_DemoDS" pool-name="FDMS_DemoDS">
<connection-url>jdbc:mysql://localhost:3306/demo?zeroDateTimeBehavior=convertToNull</connection-url>
<driver>com.mysql</driver>
<pool>
<max-pool-size>60</max-pool-size>
</pool>
<security>
<user-name>fduser</user-name>
<password>fdms!</password>
</security>
</datasource>
</datasources>
我不確定使用JAXB轉換時對應的java類是什么。
到目前為止,根據我的理解,我已經嘗試過:
@XmlRootElement
public class Datasources {
String connectionUrl;
String maxPoolSize;
String driver;
public String getConnectionUrl() {
return connectionUrl;
}
@XmlElement
public void setConnectionUrl(String connectionUrl) {
this.connectionUrl = connectionUrl;
}
public String getMaxPoolSize() {
return maxPoolSize;
}
@XmlElement
public void setMaxPoolSize(String maxPoolSize) {
this.maxPoolSize = maxPoolSize;
}
public String getDriver() {
return driver;
}
@XmlElement
public void setDriver(String driver) {
this.driver = driver;
}
}
這是帶有JAXB批注的Java類。 這不是100%准確,但可能會對您有所幫助。
數據源
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"datasource"
})
public class Datasources {
@XmlElement(name = "datasource")
private List<Datasource> datasources;
public List<Datasource> getDatasources() {
if (datasource == null) {
datasources = new ArrayList<Datasource>();
}
return datasources
}
}
數據源
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"connection-url",
"driver",
"pool",
"security"
})
public class Datasource {
@XmlElement(name = "connection-url")
private String connectionUrl;
@XmlElement(name = "driver")
private String driver;
@XmlElement(name = "pool")
private Pool pool;
@XmlElement(name = "security")
private Security security;
public String getConnectionUrl() {
return connectionUrl;
}
public void setConnectionUrl(String value) {
this.connectionUrl = value;
}
public String getDriver() {
return driver;
}
public void setDriver(String value) {
this.driver = value;
}
public Pool getPool() {
return pool;
}
public void setPool(Pool value) {
this.pool = value;
}
public Security getSecurity() {
return security;
}
public void setSecurity(Security value) {
this.security = value;
}
}
Pool.java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"max-pool-size"
})
public class Pool {
@XmlElement(name = "max-pool-size")
private String maxPoolSize;
public String getMaxPoolSize() {
return maxPoolSize;
}
public void setMaxPoolSize(String value) {
this.maxPoolSize = value;
}
}
安全性
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"user-name",
"password"
})
public class Security {
@XmlElement(name = "user-name")
private String username;
@XmlElement(name = "password")
private String password;
public String getUsername() {
return username;
}
public void setUsername(String value) {
this.username = value;
}
public String getPassword() {
return password;
}
public void setPassword(String value) {
this.password = value;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.