2017-12-28 14 views
0

私のPojoオブジェクトを使用してUnmarshall Jaxbを使用してxmlファイル(Input.xml)を読み込んでいます。Jaxb Marshaller.put.xmlファイルの同じデータを含むoutput.xmlファイル(レコード処理結果を示す追加のタグ付き)

入力ファイルの例をUnmarshallerで読み込みます。

File file = new File(".\\src\\test\\files\\Input.xml"); 
    JAXBContext jaxbContext = JAXBContext.newInstance(MerchantPayments.class); 
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
    MerchantPayments MpObj = (MerchantPayments) jaxbUnmarshaller.unmarshal(file); 
    // Process MpObj.. 

私は今に必要なもの、input.xmlにファイルの同じデータを含むのOutput.xmlファイルを生成することですが、レコードが正常にロードされているかどうかを示す<result>という新しいタグを追加します。

input.xmlの同じデータを含み、新しいタグを追加するJaxb Marshal機能を使用してoutput.xmlファイルを生成する最も良い方法はどれですか?

新しいタグを追加するためにoutput.xmlファイルの新しいPojoを生成する必要がありますか?Jaxb Marshallerを使用する方法がありますか?私は新しいタグ<result>を含む、追加タグ<result>

input.xmlに

<?xml version='1.0' encoding='UTF-8'?> 
    <payments> 
     <payment> 
      <account>123</account> 
      <order>110000000001</order> 
      <amount>19.0</amount> 
     </payment> 
     <payment> 
      <account>1234</account> 
      <order>110000000002</order> 
      <amount>20.0</amount> 
     </payment> 
    </payments> 

のOutput.xmlでgeneateする必要がinput.xmlにファイルとのOutput.xmlファイルの下

<?xml version='1.0' encoding='UTF-8'?> 
    <payments> 
     <payment> 
      <account>123</account> 
      <order>110000000001</order> 
      <amount>19.0</amount> 
      **<result>Record loaded correctly</result>** 
     </payment> 
     <payment> 
      <account>1234</account> 
      <order>110000000002</order> 
      <amount>20.0</amount> 
      **<result>Record Failed</result>** 
     </payment> 
    </payments> 

ありがとうございます。

答えて

0

Output.xmlに新しいタグを追加するには、まずMerchantPaymentsクラスにsetter/getterメソッドを追加する必要があります。非整列化した後

@XmlElement(name = "result") 
private String result; 

、あなたが設定しフィールドを発生するテキストを「録音が失敗しました」がMpObjを取得します。これで、MpObjをマーシャリングし、Output.xmlで目的の出力を得ることができます。

+0

ご返信ありがとうございます。この方法でも、新しい要素の結果を定義するためにxsdファイルを変更する必要があります。元のxsdファイルを変更することはできません。 – Alex

関連する問題