entry.other=new Konto();
String sepadescr = result.getProperty(header+".sepadescr");
PainVersion version = new PainVersion(sepadescr);
ISEPAParser parser = SEPAParserFactory.get(version);
ArrayList<Properties> sepaResults = new ArrayList<Properties>();
String pain = result.getProperty(header+".sepapain");
try
{
// Wir duerfen das hier nicht als UTF-8 interpretieren (das war vorher hier das Fall),
// auch dann nicht, wenn wir genau wissen, dass das XML mit "<?xml version="1.0" encoding="UTF-8"?>"
// beginnt. Stattdessen muessen wir den selben Zeichensatz nehmen, der bei der Byte->String Conversion
// beim Empfamg der rohen HBCI-Daten ueber TCP verwendet wurde. Siehe CommStandard/CommPinTan.
// Die eigentliche Codierung der XML-Datei spielt hier keine Rolle - wichtig ist, dass die
// Rueckwandlung String->Bytes (in pain.getBytes) den selben Zeichensatz verwendet wie beim Empfang der
// Daten vom Server. Nur so ist sichergestellt, dass die Bytes wieder genauso aussehen, wie sie
// beim Empfang vom Server kamen, wenn der XML-Parser sie kriegt. Er macht dann die Conversion Byte->String
// korrekt basierend auf dem im XML angegebenen Header.
// Siehe auch AbstractSEPAGenerator#marshal
parser.parse(new ByteArrayInputStream(pain.getBytes(Comm.ENCODING)), sepaResults);
}
catch(Exception e)
{
throw new HBCI_Exception("Error parsing SEPA pain document",e);
}