2015-04-01 28 views
0

我的XML輸出應該是這樣嗎?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
 
<staffs> 
 
    <records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="employee"> 
 
     <id>1</id> 
 
     <name>Danial</name> 
 
     <age>20</age> 
 
     <TFN>1231231</TFN> 
 
     <contact>12314123</contact> 
 
     <jobType>WAITER</jobType> 
 
     <wage>12.0</wage> 
 
    </records> 
 
    <records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="employee"> 
 
     <id>2</id> 
 
     <name>Andrew</name> 
 
     <age>21</age> 
 
     <TFN>1231254</TFN> 
 
     <contact>123677</contact> 
 
     <jobType>ADMIN</jobType> 
 
     <wage>18.0</wage> 
 
    </records> 
 
    <records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="employee"> 
 
     <id>3</id> 
 
     <name>Jenny</name> 
 
     <age>19</age> 
 
     <TFN>1231432</TFN> 
 
     <contact>1239873</contact> 
 
     <jobType>WAITRESS</jobType> 
 
     <wage>15.0</wage> 
 
    </records> 
 
    <employees> 
 
     <id>1</id> 
 
     <name>Danial</name> 
 
     <age>20</age> 
 
     <TFN>1231231</TFN> 
 
     <contact>12314123</contact> 
 
     <jobType>WAITER</jobType> 
 
     <wage>12.0</wage> 
 
    </employees> 
 
    <employees> 
 
     <id>2</id> 
 
     <name>Andrew</name> 
 
     <age>21</age> 
 
     <TFN>1231254</TFN> 
 
     <contact>123677</contact> 
 
     <jobType>ADMIN</jobType> 
 
     <wage>18.0</wage> 
 
    </employees> 
 
    <employees> 
 
     <id>3</id> 
 
     <name>Jenny</name> 
 
     <age>19</age> 
 
     <TFN>1231432</TFN> 
 
     <contact>1239873</contact> 
 
     <jobType>WAITRESS</jobType> 
 
     <wage>15.0</wage> 
 
    </employees> 
 
</staffs>

使用JAXB後反正我的輸出是上述情況。 這是正常嗎?爲什麼它重複輸入? 記錄保存鏈表和員工延伸記錄

,如果有地方,以防這將是渴望聽到

import javax.xml.bind.annotation.*; 
 

 
@XmlRootElement(name = "staffs") 
 
@XmlAccessorType(XmlAccessType.FIELD) 
 
public class Employees extends Records 
 
{ 
 
    @XmlElement(type = Employee.class) 
 
\t public LinkedList<Record> getEmployees() 
 
\t { 
 
\t \t return super.getRecords(); 
 
\t } 
 
} 
 

 

 
//////////////////////Employee class///////////////// 
 
import javax.xml.bind.annotation.*; 
 
@XmlRootElement(name = "staff") 
 
@XmlAccessorType(XmlAccessType.FIELD) 
 
public class Employee extends Record 
 
{ 
 
}

+0

你可能有一個重複對象列表 - 爲什麼你重複獲取它們 - 向我們展示如何生成它的代碼,我們可能能夠找到解決方案。 – Alexander 2015-04-01 07:37:26

+0

@Alexander 這就是基本上它。 我不認爲我重複列表。 – 2015-04-01 07:51:12

回答

1

問題IST,因爲你必須實際返回相同的干將列表:

  • Record.getRecords()和
  • Employee.getEmployees()。

看到

public LinkedList<Record> getEmployees() 
{ 
    return super.getRecords(); 
} 

這就是爲什麼你有這樣的兩個幾乎相同的列表。你真的需要這個重複的吸氣劑嗎?如果不是,只需將其刪除,輸出將不帶重複項。

+0

如果我要刪除Employees類中的getter,我將如何參考列表? 我只是在父級設置元素? – 2015-04-01 08:08:36

+0

是的,你可以調用'getRecords()'和'setRecords(List)',如果它們是公共的 - 無論哪個類或子類定義它。猜猜爲什麼你可以在任何對象上調用'toString()'。 – Alexander 2015-04-01 08:10:17

+0

我明白了你的意思,並把它修好了 – 2015-04-01 08:19:30

相關問題