2016-03-10 36 views
0

我曾嘗試使用本網站提出的其他問題,但沒有一個與我正在做的事情有關。Android simpleXML元素'[element name]'已被使用

我正在嘗試使用simpleXML爲Android應用程序「反序列化」soap xml。我越來越接近得到這個,但我在這裏遇到了一堵磚牆。

當我運行我的代碼,我得到以下錯誤:

org.simpleframework.xml.core.PersistenceException: Element 'serviceOrderCT' is already used with @org.simpleframework.xml.Element(name=, type=void, data=false, required=true) on field 'serviceOrderCT' private serviceOrderCT GetServiceOrdersResult.serviceOrderCT at line 26 

所以,這個問題似乎是與「GetServiceOrdersResult.java」類(下面的代碼),但我不能把我的指着它是什麼。

我一直在這個小時,並沒有得到任何地方。

幫助獲得通過這個問題,將不勝感激。

謝謝。

[編輯:這裏的XML文件]

<GetServiceOrdersResponse xmlns="http://tempuri.org/"> 
    <GetServiceOrdersResult xmlns:a="http://schemas.datacontract.org/2004/07/MobileWebService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <a:serviceOrderCT> 
      <a:_bill_to_Customer_No_>xxxxx</a:_bill_to_Customer_No_> 
      <a:_bill_to_Name>xxxxxxx</a:_bill_to_Name> 
      <a:_customer_No_ i:nil="true" /> 
      <a:_description /> 
      <a:_fix_By_Date>xxxxxxxxxxxxx</a:_fix_By_Date> 
      <a:_fix_By_Time /> 
      <a:_fixed_Date>xxxxxxxxxxxx</a:_fixed_Date> 
      <a:_fixed_Time>xxxxxxxxxxxxxx</a:_fixed_Time> 
      <a:_name>xxxxxxxxxxxxxxx</a:_name> 
      <a:_no_>xxxxxxxxxxxxxxxxxxx</a:_no_> 
      <a:_order_Date>xxxxxxxxxxxxxxx</a:_order_Date> 
      <a:_order_Time>xxxxxxxxxxxxx</a:_order_Time> 
      <a:_responded_Date>xxxxxxxxxxxxxxxxxx</a:_responded_Date> 
      <a:_responded_Time /> 
      <a:_response_Date>xxxxxxxxxxxxxxxxxx</a:_response_Date> 
      <a:_response_Time>xxxxxxxxxxxxxxxxxxxx</a:_response_Time> 
      <a:_transaction_Status>xxxxxxxxxxxxxxx</a:_transaction_Status> 
      <a:_your_Reference /> 
     </a:serviceOrderCT> 
     <a:serviceOrderCT> 
      a:_bill_to_Customer_No_>xxxxx</a:_bill_to_Customer_No_> 
      <a:_bill_to_Name>xxxxxxx</a:_bill_to_Name> 
      <a:_customer_No_ i:nil="true" /> 
      <a:_description /> 
      <a:_fix_By_Date>xxxxxxxxxxxxx</a:_fix_By_Date> 
      <a:_fix_By_Time /> 
      <a:_fixed_Date>xxxxxxxxxxxx</a:_fixed_Date> 
      <a:_fixed_Time>xxxxxxxxxxxxxx</a:_fixed_Time> 
      <a:_name>xxxxxxxxxxxxxxx</a:_name> 
      <a:_no_>xxxxxxxxxxxxxxxxxxx</a:_no_> 
      <a:_order_Date>xxxxxxxxxxxxxxx</a:_order_Date> 
      <a:_order_Time>xxxxxxxxxxxxx</a:_order_Time> 
      <a:_responded_Date>xxxxxxxxxxxxxxxxxx</a:_responded_Date> 
      <a:_responded_Time /> 
      <a:_response_Date>xxxxxxxxxxxxxxxxxx</a:_response_Date> 
      <a:_response_Time>xxxxxxxxxxxxxxxxxxxx</a:_response_Time> 
      <a:_transaction_Status>xxxxxxxxxxxxxxx</a:_transaction_Status> 
      <a:_your_Reference /> 
     </a:serviceOrderCT> 
    </GetServiceOrdersResult> 
    </GetServiceOrdersResponse> 

Envelope.java

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Root; 

@Root 
public class Envelope { 

    @Element(name = "Body") 
    private Body body; 


    public Body getBody() { 
     return body; 
    } 

} 

Body.java

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementList; 
import org.simpleframework.xml.Path; 
import org.simpleframework.xml.Root; 

import java.util.List; 

public class Body { 

    @Element(name = "GetServiceOrdersResponse") 
    private GetServiceOrdersResponse getServiceOrdersResponse; 

    public GetServiceOrdersResponse getServiceOrdersResponse() { 
     return getServiceOrdersResponse; 
    } 
} 

GetServiceOrdersResponse.java

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Path; 

public class GetServiceOrdersResponse { 

    @Element(name = "GetServiceOrdersResult") 
    private GetServiceOrdersResult getServiceOrdersResult; 

    public GetServiceOrdersResult getGetServiceOrdersResult() { 
     return getServiceOrdersResult; 
    } 
} 

GetServiceOrdersResult.java

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementList; 
import org.simpleframework.xml.Path; 
import org.simpleframework.xml.Root; 

import java.util.List; 

public class GetServiceOrdersResult { 
    @Element 
    private serviceOrderCT serviceOrderCT; 

    public serviceOrderCT getServiceOrderCT() { 
     return serviceOrderCT; 
    } 
} 

serviceOrderCT

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Namespace; 
import org.simpleframework.xml.Root; 

public class serviceOrderCT { 

    @Element(name = "_bill_to_Customer_No_", required = false) 
    private String billToCustomerNo; 
    @Element(name = "_bill_to_Name", required = false) 
    private String billToName; 
    @Element(name = "_customer_No_", required = false) 
    private String customerNo; 
    @Element(name = "_description", required = false) 
    private String description; 
    @Element(name = "_fix_By_Date", required = false) 
    private String fixByDate; 
    @Element(name = "_fix_By_Time", required = false) 
    private String fixByTime; 
    @Element(name = "_fixed_Date", required = false) 
    private String fixedDate; 
    @Element(name = "_fixed_Time", required = false) 
    private String fixedTime; 
    @Element(name = "_name", required = false) 
    private String name; 
    @Element(name = "_no_", required = false) 
    private String no; 
    @Element(name = "_order_Date", required = false) 
    private String orderDate; 
    @Element(name = "_order_Time", required = false) 
    private String orderTime; 
    @Element(name = "_responded_Date", required = false) 
    private String respondedDate; 
    @Element(name = "_responded_Time", required = false) 
    private String respondedTime; 
    @Element(name = "_response_Date", required = false) 
    private String responseDate; 
    @Element(name = "_response_Time", required = false) 
    private String responseTime; 
    @Element(name = "_transaction_Status", required = false) 
    private String transactionStatus; 
    @Element(name = "_your_Reference", required = false) 
    private String yourReference; 

    public serviceOrderCT() { 
    } 

    public String getBillToCustomerNo() { 
     return billToCustomerNo; 
    } 

    public void setBillToCustomerNo(String billToCustomerNo) { 
     this.billToCustomerNo = billToCustomerNo; 
    } 

    public String getBillToName() { 
     return billToName; 
    } 

    public void setBillToName(String billToName) { 
     this.billToName = billToName; 
    } 

    public String getCustomerNo() { 
     return customerNo; 
    } 

    public void setCustomerNo(String customerNo) { 
     this.customerNo = customerNo; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public String getFixByDate() { 
     return fixByDate; 
    } 

    public void setFixByDate(String fixByDate) { 
     this.fixByDate = fixByDate; 
    } 

    public String getFixByTime() { 
     return fixByTime; 
    } 

    public void setFixByTime(String fixByTime) { 
     this.fixByTime = fixByTime; 
    } 

    public String getFixedDate() { 
     return fixedDate; 
    } 

    public void setFixedDate(String fixedDate) { 
     this.fixedDate = fixedDate; 
    } 

    public String getFixedTime() { 
     return fixedTime; 
    } 

    public void setFixedTime(String fixedTime) { 
     this.fixedTime = fixedTime; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getNo() { 
     return no; 
    } 

    public void setNo(String no) { 
     this.no = no; 
    } 

    public String getOrderDate() { 
     return orderDate; 
    } 

    public void setOrderDate(String orderDate) { 
     this.orderDate = orderDate; 
    } 

    public String getOrderTime() { 
     return orderTime; 
    } 

    public void setOrderTime(String orderTime) { 
     this.orderTime = orderTime; 
    } 

    public String getRespondedDate() { 
     return respondedDate; 
    } 

    public void setRespondedDate(String respondedDate) { 
     this.respondedDate = respondedDate; 
    } 

    public String getRespondedTime() { 
     return respondedTime; 
    } 

    public void setRespondedTime(String respondedTime) { 
     this.respondedTime = respondedTime; 
    } 

    public String getResponseDate() { 
     return responseDate; 
    } 

    public void setResponseDate(String responseDate) { 
     this.responseDate = responseDate; 
    } 

    public String getResponseTime() { 
     return responseTime; 
    } 

    public void setResponseTime(String responseTime) { 
     this.responseTime = responseTime; 
    } 

    public String getTransactionStatus() { 
     return transactionStatus; 
    } 

    public void setTransactionStatus(String transactionStatus) { 
     this.transactionStatus = transactionStatus; 
    } 

    public String getYourReference() { 
     return yourReference; 
    } 

    public void setYourReference(String yourReference) { 
     this.yourReference = yourReference; 
    } 

} 

Main.java

import org.simpleframework.xml.Serializer; 
import org.simpleframework.xml.core.Persister; 

import java.io.File; 

public class Main { 
    public static void main(String[] args) { 
     try { 
      Serializer serializer = new Persister(); 
      File result = new File("C:\\Users\\xxxxxxxx\\Documents\\file.xml"); 

      Envelope example = serializer.read(Envelope.class, result); 
      System.out.println(example.getBody().getServiceOrdersResponse().getGetServiceOrdersResult().getServiceOrderCT().getBillToCustomerNo()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

KSoap2有問題嗎?你有沒有試過..? –

+0

沒有。我剛剛添加了XML文件。我可以從我正在使用的Web服務中獲得它。我只是爲了獲取XML並將其轉換爲Java對象 – Chosen1

回答