Eintragshistorie: KlasseAdapterXMLWriter
Compare Page Revisions
Eintragsversion: 23/04/2010 11:01
Zweck
Mit Hilfe der Klasse TAdapterXMLWriter können Daten als XML zusammengestellt werden.
Dabei sorgt die Klasse das die XML Vereinbarungen eingehalten werden und die Daten normiert werden.
Die Ausgabe Datei wird immer mittels UTF8 Codierung gespeichert.
Beispiel
Folgendes Beispiel soll die Funktionsweise der TAdapterXMLWriter Klasse verdeutlichen.
procedure ButtonTestSepa_OnClick(Sender: Integer);
var
aWriter : TAdapterXMLWriter;
begin
aWriter := TAdapterXMLWriter.Create;
try
aWriter.WriteStartDocument;
aWriter.WriteStartElement('APC:PaymentsContainer');
aWriter.WriteAttributeString('xmlns:APC', 'APC:STUZZA:payments:container:003');
aWriter.WriteAttributeString('xmlns', 'APC:STUZZA:payments:ISO:pain:001:001:02:austrian:001');
aWriter.WriteAttributeString('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
aWriter.WriteAttributeString('xsi:schemaLocation', 'APC:STUZZA:payments:container:003 APC:STUZZA:payments:container:003');
//APC:CntnrInf
aWriter.WriteStartElement('APC:CntnrInf');
aWriter.WriteStringElement('APC:CntnrId', '08012912121201');
aWriter.WriteStringElement('APC:SndgPty', 'HermannMeier');
aWriter.WriteStringElement('APC:RcvPty', 'ATOBERBANK');
aWriter.WriteEndElement(); //APC:CntnrInf
//APC:Msgs
aWriter.WriteStartElement('APC:Msgs');
//APC:Crdts
aWriter.WriteStartElement('APC:Crdts');
//pain.001.001.02
aWriter.WriteStartElement('pain.001.001.02');
//GrpHdr
aWriter.WriteStartElement('GrpHdr');
aWriter.WriteStringElement('MsgId', 'C-001-BH3');
aWriter.WriteStringElement('CreDtTm', formatDateTime_SEPA(now));
aWriter.WriteIntElement('NbOfTxs', 2);
aWriter.WriteDoubleElement('CtrlSum', 111.64);
aWriter.WriteEndElement(); //GrpHdr
aWriter.WriteEndElement(); //pain.001.001.02
aWriter.WriteEndElement(); //APC:Crdts
aWriter.WriteEndElement(); //APC:Msgs
aWriter.WriteEndElement(); //APC:PaymentsContainer
aWriter.SaveToFile('c:\test.xml');
finally
aWriter.Free;
end;
end;
function formatDateTime_SEPA(const aDateTime: TDateTime): string;
begin
result := FormatDateTime('yyyy-mm-dd', aDateTime) + 'T'
+ FormatDateTime('hh:nn:ss', aDateTime);
end;