Hallo zusammen,
ich arbeite gerade an der Implementierung der XRechnung. Dazu benutze ich das TXMLDocument.
Für ein bestimmtes Element ist gefordert, dass Zeilenümbrüche im
XML erhalten bleiben müssen. Also nehme ich einen CDATA-Knoten. Vom Prinzip her so:
Delphi-Quellcode:
Inhalt:='#SKONTO#TAGE=14#PROZENT=2.50#BASISBETRAG=11000.00#' + sLineBreak +
'#SKONTO#TAGE=28#PROZENT=1.00#' + sLineBreak;
Node1:=RootNode.AddChild('cac:PaymentTerms');
Node2:=Node1.AddChild('cbc:Note');
Node3:=XMLDoc.CreateNode(Inhalt, ntCData);
Node2.ChildNodes.Add(Node3)
Das funktioniert soweit ganz gut. Das
XML sieht danach so aus:
Code:
<cac:PaymentTerms>
<cbc:Note>
<![CDATA[#SKONTO#TAGE=14#PROZENT=2.50#BASISBETRAG=11000.00#
#SKONTO#TAGE=28#PROZENT=1.00#
]]>
</cbc:Note>
</cac:PaymentTerms>
Jetzt gibt es aber im Netz mindestens 2 Online-XRechnungs-Viewer, die sich an diesem Knoten stören und anmeckern, dass hier keine zusätzlichen Leerzeichen etc. vorhanden sein dürfen. Diese Syntax wird akzeptiert:
Code:
<cac:PaymentTerms>
<cbc:Note><![CDATA[#SKONTO#TAGE=14#PROZENT=2.50#BASISBETRAG=11000.00#
#SKONTO#TAGE=28#PROZENT=1.00#
]]></cbc:Note>
</cac:PaymentTerms>
Deshalb meine Frage:
Wie bringe ich dem TXMLDocument bei, dass es das <![CDATA...]> direkt zwischen die Tags <cbc:Note></cbc:Note> schreibt, ohne weitere Zeilenumbrücke oder Leerzeichen?