要从java对象生成的xml

要从java对象生成的xml,java,Java,我使用xstream从java对象生成xml,下面是从java对象生成的xml <brokermail> <invoiceReferenceNotificationMessage> <com.absfm.ice.ioa.jms.InvoiceReferenceNotificationMessage> <InvoiceReference>SM/829709/0315</InvoiceReference>

我使用
xstream
从java对象生成xml,下面是从java对象生成的xml

<brokermail>
  <invoiceReferenceNotificationMessage>
    <com.absfm.ice.ioa.jms.InvoiceReferenceNotificationMessage>
      <InvoiceReference>SM/829709/0315</InvoiceReference>
      <ABSReference>IRMAR157311</ABSReference>
      <Currency>GBP</Currency>
      <InvoiceAmount>2546.0</InvoiceAmount>
      <PaidAmount>1245.0</PaidAmount>
      <BalanceAmount>0.0</BalanceAmount>
      <ValueDate>2015-05-23 20:07:20.78 IST</ValueDate>
      <Remarks>abc</Remarks>
    </com.rbsfm.ice.ioa.jms.InvoiceReferenceNotificationMessage>
    <com.rbsfm.ice.ioa.jms.InvoiceReferenceNotificationMessage>
      <InvoiceReference>SM/15</InvoiceReference>
      <ABSReference>I157311</ABSReference>
      <Currency>EUR</Currency>
      <InvoiceAmount>255546.0</InvoiceAmount>
      <PaidAmount>125545.0</PaidAmount>
      <BalanceAmount>0.0</BalanceAmount>
      <ValueDate>2015-05-23 20:07:20.78 IST</ValueDate>
      <Remarks>abERRc</Remarks>
    </com.absfm.ice.ioa.jms.InvoiceReferenceNotificationMessage>
  </invoiceReferenceNotificationMessage>
</brokermail>

SM/829709/0315
IRMAR157311
英镑
2546
1245
0
2015-05-23 20:07:20.78
abc
SM/15
I157311
欧元
255546
125545
0
2015-05-23 20:07:20.78
阿伯雷克
但是我希望xml以下面的方式生成

<brokermail>

  <invoiceReferenceNotificationMessage>
   <InvoiceReference>SM/829709/0315</InvoiceReference>
      <ABSReference>IRMAR157311</ABSReference>
      <Currency>GBP</Currency>
      <InvoiceAmount>2546.0</InvoiceAmount>
      <PaidAmount>1245.0</PaidAmount>
      <BalanceAmount>0.0</BalanceAmount>
      <ValueDate>2015-05-23 20:38:35.110 IST</ValueDate>
      <Remarks>abc</Remarks>
     </invoiceReferenceNotificationMessage>

     <invoiceReferenceNotificationMessage>
        <InvoiceReference>SM/15</InvoiceReference>
      <ABSReference>I157311</ABSReference>
      <Currency>EUR</Currency>
      <InvoiceAmount>255546.0</InvoiceAmount>
      <PaidAmount>125545.0</PaidAmount>
      <BalanceAmount>0.0</BalanceAmount>
      <ValueDate>2015-05-23 20:38:35.110 IST</ValueDate>
      <Remarks>abERRc</Remarks>
  </invoiceReferenceNotificationMessage>

</brokermail>

SM/829709/0315
IRMAR157311
英镑
2546
1245
0
2015-05-23 20:38:35.110伊斯特
abc
SM/15
I157311
欧元
255546
125545
0
2015-05-23 20:38:35.110伊斯特
阿伯雷克
现在,正如上面所示,我希望xml以上述方式生成,但现在还没有发生。您能告诉我在下面的pojo中需要做什么更改才能以上面的方式获取xml吗。下面是我的pojo

  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;
            }
    }
公共类邮件{
私有列表invoiceReferenceNotificationMessage=new ArrayList();
公共列表getInvoiceReferenceNotificationMessages(){
返回invoiceReferenceNotificationMessage;
}
public void addInvoiceReferenceNotificationMessages(列表invoiceReferenceNotificationMessages){
this.invoiceReferenceNotificationMessages=invoiceReferenceNotificationMessages;
}
}
这里是正在发生的主要方法调用

下面是一个主类,通过它下面的xstream可以生成xml

InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage = new InvoiceReferenceNotificationMessage();
        invoiceReferenceNotificationMessage.setInvoiceReference("SM/854565");
        invoiceReferenceNotificationMessage.ABSReference("IRM5454311");
        invoiceReferenceNotificationMessage.setCurrency("GBP");
        invoiceReferenceNotificationMessage.setInvoiceAmount(255446);
        invoiceReferenceNotificationMessage.setPaidAmount(12445);
        invoiceReferenceNotificationMessage.setBalanceAmount(0);
        invoiceReferenceNotificationMessage.setValueDate(new Date());
        invoiceReferenceNotificationMessage.setRemarks("abc");


        InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage1 = new InvoiceReferenceNotificationMessage();
        invoiceReferenceNotificationMessage1.setInvoiceReference("SM/14545");
        invoiceReferenceNotificationMessage1.ABSReference("I15745311");
        invoiceReferenceNotificationMessage1.setCurrency("EUR");
        invoiceReferenceNotificationMessage1.setInvoiceAmount(2555546);
        invoiceReferenceNotificationMessage1.setPaidAmount(125545);
        invoiceReferenceNotificationMessage1.setBalanceAmount(0);
        invoiceReferenceNotificationMessage1.setValueDate(new Date());
        invoiceReferenceNotificationMessage1.setRemarks("abERRc");

        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);
        System.out.println(abc);
InvoiceReferenceNotificationMessage InvoiceReferenceNotificationMessage=new InvoiceReferenceNotificationMessage();
invoiceReferenceNotificationMessage.setInvoiceReference(“SM/854565”);
invoiceReferenceNotificationMessage.ABSReference(“IRM5454311”);
invoiceReferenceNotificationMessage.setCurrency(“英镑”);
invoiceReferenceNotificationMessage.setInvoiceAmount(255446);
invoiceReferenceNotificationMessage.setPaidAmount(12445);
invoiceReferenceNotificationMessage.setBalanceAmount(0);
invoiceReferenceNotificationMessage.setValueDate(新日期());
invoiceReferenceNotificationMessage.set备注(“abc”);
InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage1=新的InvoiceReferenceNotificationMessage();
发票参考信息1.设置发票参考(“SM/14545”);
发票参考通知信息1.ABSReference(“I15745311”);
发票参考通知信息1.设置货币(“欧元”);
invoiceReferenceNotificationMessage1.设置发票金额(2555546);
发票参考通知报文1.setPaidAmount(125545);
invoiceReferenceNotificationMessage1.setBalanceAmount(0);
invoiceReferenceNotificationMessage1.setValueDate(新日期());
发票参考信息1.设置备注(“abERRc”);
List invoiceReferenceNotificationMessagest=new ArrayList();
invoiceReferenceNotificationMessagest.add(invoiceReferenceNotificationMessage);
invoiceReferenceNotificationMessagest.add(invoiceReferenceNotificationMessage1);
邮件m=新邮件();
m、 添加OICEReferenceNotificationMessages(invoiceReferenceNotificationMessagest);
XStream XStream=新的XStream();
别名(“brokermail”,Mail.class);
字符串abc=xstream.toXML(m);
系统输出打印LN(abc);
各位朋友,请告知我需要在上述POJO中进行哪些更改,以获得所需的xml,如我所示
各位朋友,请建议尽早提供帮助,我们将不胜感激。请提前感谢。

首先,请查看XStream文档以了解“”

特别注意

  • 别名-用于“com.absfm.ice.ioa.jms…”之类的东西
  • 隐式集合(用于“额外”包装器)

  • 这应该能帮到你。

    谢谢请求你,如果可能的话请更新我的代码,这将对你有很大帮助再次感谢你的宝贵建议如果可能的话请更新我现有的代码,这样我就能掌握更多信息