Ja, ich arbeite mich auch durch die ERechnung Anforderung durch.
Ich bin eigentlich schon rechts weit und wie folgt vorgegangen:
-aktuelle
XML Definition von
www.ferd-net.de/ZUGFeRD-Download herunter geladen und eines der Profile ausgewählt.
-mit dem in Delphi enthaltenen "
XML Data Binding" diese xsd Datei(en) importiert und mir einer
Unit erstellen lassen
-damit kann mal sehr komfortabel die
XML Datei erstellen lassen
ABER:
Die Namespaces fehlen komplett! Das
XML Data Binding erzeugt da gar nichts und das ist wohl auch ein Bug der schon seit Delphi 7 Zeiten nicht behoben ist. Bei komplexen xsd Dateien und include von verschiedenen xsd Dateien kommt das Tool nicht klar.
Dann habe ich noch mal einen Angang mit einem alternativen
XML Data Binding gemacht (hier sollen die Namespace Probleme nicht auftreten):
https://git.x2software.net/GitHub-Mi...xmldatabinding
Der erzeugt auch eine schöne
Unit mit der sich die
XML Datei ähnlich einfach erstellen läßt.
Namespaces sind drin, aber verkehrt (URIs statt namespaces; und das Format in der Node sieht anders aus).
Hat da jemand eine Lösung oder Idee?
Hier eine ZUGFerD Mustervorlage, wie die
XML Datei aussehen sollte; aus einer Muster
XML Datei nur mal den Anfang rausgeschnitten und wir konzentrieren uns auf die Darstellung des Feldes
ram:ID (letzte Zeile):
Code:
<?
xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:
ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
<rsm:ExchangedDocumentContext>
<
ram:GuidelineSpecifiedDocumentContextParameter>
<
ram:ID>urn:cen.eu:en16931:2017</
ram:ID>
</
ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<
ram:ID>R-00011</
ram:ID>
jetzt ein erzeugter Code mit dem Delphi
XML Data Binding; es fehlen Namespace-Anfangen in den Nodes:
Code:
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:
ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:factur-x.eu:1p0:basicwl</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<ExchangedDocument>
<ID>12450011</ID>
und zuletzt der erzeugte Code mit dem alternativen
XML Data binding; da sind Namespaces drin, aber die
URI und nicht die kurzen Namespaces, außerdem im Format nicht passend:
Code:
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:
ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
<rsm:ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter xmlns="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
<ID>urn:factur-x.eu:1p0:basicwl</ID>
</GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ID xmlns="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">12450011</ID>