Einzelnen Beitrag anzeigen

motion

Registriert seit: 23. Jan 2006
13 Beiträge
 
#1

ZUGFerD und XML Bearbeitung mit dem Delphi XML Data Binding - Namespace Probleme

  Alt 22. Nov 2024, 20:39
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>
  Mit Zitat antworten Zitat