Как показано ниже, у меня есть класс POJO с инкубационными и геттерами:объекта XML не генерируется правильно Java в случае нескольких объектов
public class InvoiceReferenceNotificationMessage {
private String InvoiceReference;
private String ABSReference;
private String Currency;
private double InvoiceAmount;
private double PaidAmount;
private double BalanceAmount;
private Date ValueDate;
private String Remarks;
}
и ниже класс, в котором выше, на которую ссылаются :
public class Mail {
@SuppressWarnings("unused")
private InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage;
public InvoiceReferenceNotificationMessage getInvoiceReferenceNotificationMessage() {
return invoiceReferenceNotificationMessage;
}
public void setInvoiceReferenceNotificationMessage(
InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage) {
this.invoiceReferenceNotificationMessage = invoiceReferenceNotificationMessage;
}
}
Я использую xstream для создания xml объекта. У меня нет никакой проблемы, создавая единый объект в Java, как показано ниже:
public class InvoiceReferenceNotificationMessagetest {
InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage = new InvoiceReferenceNotificationMessage();
invoiceReferenceNotificationMessage.setInvoiceReference("S15");
invoiceReferenceNotificationMessage.setABSReference("IRMA1");
invoiceReferenceNotificationMessage.setCurrency("GBP");
invoiceReferenceNotificationMessage.setInvoiceAmount(25746);
invoiceReferenceNotificationMessage.setPaidAmount(18245);
invoiceReferenceNotificationMessage.setBalanceAmount(90);
invoiceReferenceNotificationMessage.setValueDate(new Date());
invoiceReferenceNotificationMessage.setRemarks("abc");
Mail m = new Mail();
m.setInvoiceReferenceNotificationMessage(invoiceReferenceNotificationMessage);
XStream xstream = new XStream();
xstream.alias("brokermail",Mail.class);
String abc = xstream.toXML(m);
}
тегов, которые я наконец-то будет, как показано ниже:
<brokermail>
<invoiceReferenceNotificationMessage>
<InvoiceReference>dffg</InvoiceReference>
<ABSReference>Ifgfg</ABSReference>
<Currency>Ggfg</Currency>
<InvoiceAmount>2554546.0</InvoiceAmount>
<PaidAmount>125445.0</PaidAmount>
<BalanceAmount>0454.0</BalanceAmount>
<ValueDate>2015-:34.165 IST</ValueDate>
<Remarks>abc</Remarks>
</invoiceReferenceNotificationMessage>
<invoiceReferenceNotificationMessage>
<InvoiceReference>xxRRR5</InvoiceReference>
<ABSReference>IRMAR15657311</ABSReference>
<Currency>EUR</Currency>
<InvoiceAmount>2545446.0</InvoiceAmount>
<PaidAmount>154245.0</PaidAmount>
<BalanceAmount>045.0</BalanceAmount>
<ValueDate>2015-05-20 21:34:34.165 IST</ValueDate>
<Remarks>abffc</Remarks>
</invoiceReferenceNotificationMessage>
</brokermail>
, но я изменил мой почтовый класс для хранения нескольких объектов в моде ниже
public class Mail {
private List<InvoiceReferenceNotificationMessage> invoiceReferenceNotificationMessage = new ArrayList<InvoiceReferenceNotificationMessage>();
public List<InvoiceReferenceNotificationMessage> getInvoiceReferenceNotificationMessages() {
return invoiceReferenceNotificationMessage;
}
public void addInvoiceReferenceNotificationMessages(List<InvoiceReferenceNotificationMessage> invoiceReferenceNotificationMessages) {
this.invoiceReferenceNotificationMessage = invoiceReferenceNotificationMessages;
}
}
теперь, когда я создаю объекты, как показано ниже ..
List<InvoiceReferenceNotificationMessage> invoiceReferenceNotificationMessagest = new ArrayList<InvoiceReferenceNotificationMessage>();
invoiceReferenceNotificationMessagest.add(invoiceReferenceNotificationMessage);
invoiceReferenceNotificationMessagest.add(invoiceReferenceNotificationMessage1);
Mail m = new Mail();
m.addInvoiceReferenceNotificationMessages(invoiceReferenceNotificationMessagest);
XStream xstream = new XStream();
xstream.alias("brokermail",Mail.class);
String abc = xstream.toXML(m);
Я получаю тег, как показано ниже:
<brokermail>
<invoiceReferenceNotificationMessage>
<com.jms.InvoiceReferenceNotificationMessage>
<InvoiceReference>SM/829743434309/0315</InvoiceReference>
<RBSReference>IRMAR34343157311</RBSReference>
<Currency>GBP</Currency>
<InvoiceAmount>23434546.0</InvoiceAmount>
<PaidAmount>124345.0</PaidAmount>
<BalanceAmount>0.0</BalanceAmount>
<ValueDate>2015-05-21 17:51:26.188 IST</ValueDate>
<Remarks>abc</Remarks>
</com.jms.InvoiceReferenceNotificationMessage>
<com.rbsfm.ice.ioa.jms.InvoiceReferenceNotificationMessage>
<InvoiceReference343>SM/4315</InvoiceReference>
<RBSReference>I157311</RBSReference>
<Currency>EUR</Currency>
<InvoiceAmount>2554546.0</InvoiceAmount>
<PaidAmount>12543545.0</PaidAmount>
<BalanceAmount>0.0</BalanceAmount>
<ValueDate>2015-05-21 17:51:26.188 IST</ValueDate>
<Remarks>abERRc</Remarks>
</com.jms.InvoiceReferenceNotificationMessage>
</invoiceReferenceNotificationMessage>
</brokermail>
Который не является правильным, поскольку я ищу ниже один должен прийти, пожалуйста, посоветуйте, как этого добиться.
<brokermail>
<invoiceReferenceNotificationMessage>
<InvoiceReference>AA/54545829709/0315</InvoiceReference>
<RBSReference>IRMA4545R157311</RBSReference>
<Currency>GBP</Currency>
<InvoiceAmount>255446.0</InvoiceAmount>
<PaidAmount>124545.0</PaidAmount>
<BalanceAmount>0.0</BalanceAmount>
<ValueDate>2015-05-20 21:34:34.165 IST</ValueDate>
<Remarks>abc</Remarks>
</invoiceReferenceNotificationMessage>
<invoiceReferenceNotificationMessage>
<InvoiceReference>xx/8245459709/0315</InvoiceReference>
<RBSReference>IRMAR545157311</RBSReference>
<Currency>GBP</Currency>
<InvoiceAmount>2545456.0</InvoiceAmount>
<PaidAmount>124455.0</PaidAmount>
<BalanceAmount>0.0</BalanceAmount>
<ValueDate>2015-05-20 21:34:34.165 IST</ValueDate>
<Remarks>abc</Remarks>
</invoiceReferenceNotificationMessage>
</brokermail>
Как вы можете увидеть ниже тег является
<com.jms.InvoiceReferenceNotificationMessage>
это дополнительные, которые не требуют, пожалуйста, сообщите мне о том, как преодолеть это.
он показывает мне ошибку compliation для аннотаций XStreamImplicit, редактор затмений он советует создать аннотация XStreamImplicit, пожалуйста, сообщите, как продолжить –
У вас есть все необходимое XStrea m банок в вашем пути сборки? Вы импортируете аннотацию XStreamImplicit в своем классе? Например: import com.thoughtworks.xstream.annotations.XStreamImplicit; – Stugal
Я добавил этот импорт импорта com.thoughtworks.xstream.XStream; –