[gelöst] CC: XML - Präfix im Root-Element & Einzeilerproblem

Bild Microsoft Dynamics NAV 2009 (aka "NAV 6")
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie

Bitte unbedingt angeben, ob sich eure Frage auf den RoleTailored-Client (RTC) oder den Classic-Client (CC) bezieht!

[gelöst] CC: XML - Präfix im Root-Element & Einzeilerproblem

Beitragvon HouseMeister » 21. Dezember 2018 11:33

Moin zusammen,

erst einmal zum Hintergrund meines Posts:

Ich muss ein (riiiesiges) XML erstellen, welches aus einer gebuchten Rechnung erstellt wird. Da dies nahe liegt, habe ich mir hierfĂĽr erstmal einen XMLport geschnappt, und meine Anforderung damit umgesetzt. Nachdem ich fertig war und das XML getestet habe, erfahre ich, dass es keine leeren Elemente enthalten darf. Daraufhin habe ich hier im Forum gelesen, dass diese (Nach-)Forderung mit einem XMLport gar nicht umsetzbar ist.

Jetzt habe ich angefangen, das XML neu mit MSXML zu erstellen. Prinzipiell komme ich hier gut voran, aber bevor ich jetzt hier wieder unzählige Stunden investiere und nachher wieder erfahren muss, dass es nicht umsetzbar ist, schildere ich also meine aktuellen beiden Probleme, zu denen ich nichts im Forum und auch nicht im www finde:

- 1. -
Das Root-Element muss ein vorangegangenes Präfix 'p' enthalten. Dieses hat sich im XMLport problemlos umsetzen lassen. Über MSXML erhalte ich allerdings die Fehlermeldung: Verweis auf ein nicht deklariertes Namespace-Präfix: 'p'
Code: Alles auswählen
IF ISCLEAR(XMLDocOut) THEN
  CREATE(XMLDocOut, TRUE);

XMLDocOut.async            := FALSE;
XMLDocOut.validateOnParse  := FALSE;
XMLDocOut.resolveExternals := FALSE;

XMLDocOut.loadXML('<?xml version="1.0" encoding="UTF-8" ?>' +
                  '<p:FatturaElettronica></p:FatturaElettronica>');

IF XMLDocOut.xml = '' THEN BEGIN
  ERROR(XMLDocOut.parseError.reason +
        '\' +
        'Die XML-Datei wurde nicht geschrieben!');
END;


Es sollte also nachher wie folgt aussehen:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" ?>
<p:FatturaElettronica>
    <xxx>
        <yyy>...</yyy>
    </xxx>
</p:FatturaElettronica>

Bekomme ich das irgendwie hin, ohne das XML-File im nachhinein mit file und string operations so zu bearbeiten, dass das fehlende 'p:' im Root-Element gesetzt wird? :-(


- 2. -
Mein oben genanntes XML wird im Editor nur als Einzeiler, im IExplorer allerdings in korrekter XML-Struktur dargestellt. Was muss ich machen, dass mir auch Notepad++ und andere Editoren das XML vernĂĽnftig darstellen :?:


Man möge mir meine vllt. bescheuterten Fragen entschuldigen, aber ich bin weder ein XML-Guru noch habe ich größere Erfahrungen mit MSXML. Mit XMLports kann ich gerade so umgehen! :-?
Zuletzt geändert von HouseMeister am 15. Mai 2020 11:11, insgesamt 1-mal geändert.
GruĂź,
Alex
Benutzeravatar
HouseMeister
 
Beiträge: 15
Registriert: 4. März 2011 15:09
Realer Name: Alex
Arbeitsort: MĂĽnster
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3er, 4er, 5er, 2009, 2017 2018

Re: CC: XML - Präfix im Root-Element & Einzeilerproblem

Beitragvon fiddi » 21. Dezember 2018 11:51

Hallo,

zu 1. du solltest dich mal mit den Stichworten XMLNameTable und XMLNameSpaceManager auseinandersetzen.

zu 2. fĂĽr Notepad++ gibt es eine Erweiterung "XML Tools". Dort gibt es die Funktion "Pretty print (...with Line Breaks)". Damit sieht die XML lesbarer aus.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: CC: XML - Präfix im Root-Element & Einzeilerproblem

Beitragvon HouseMeister » 21. Dezember 2018 13:02

Hallo Fiddi,

danke fĂĽr deine Antworten.

Aber beide bringen mich nicht wirklich weiter.

zu 1. weiß ich nicht, wie ein Studium der beiden von dir genannten Stichworten mich in NAV weiter bringen. ich hätte jetzt gedacht, dass es durch Übergabe von Parametern oder properties im XMLDocOut eine Deklaration für Präfixe möglich macht.

zu 2. da habe ich mich vllt. etwas falsch ausgedrückt. es geht mir weniger darum, dass es in einer Zeile dargestellt wird, sondern vielmehr tatsächlich so erstellt wird. ich hätte gerne, dass das file gleich korrekt mit CRLF und Tabs erstellt wird. wenn ich das XML über den XMLport erstelle, dann wird es (auch ohne das XML plugin in Notepad++) in einer vernünftigen Struktur dargestellt - ebenso im ganz simplen Editor - weil es gleich in dieser Struktur erstellt wurde. es muss doch irgend eine Einstellung geben, mit welcher man via MSXML das auf gleiche Weise hinbekommt wie der XMLport, oder nicht?

Any other suggestions?
GruĂź,
Alex
Benutzeravatar
HouseMeister
 
Beiträge: 15
Registriert: 4. März 2011 15:09
Realer Name: Alex
Arbeitsort: MĂĽnster
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3er, 4er, 5er, 2009, 2017 2018

Re: CC: XML - Präfix im Root-Element & Einzeilerproblem

Beitragvon fiddi » 21. Dezember 2018 13:36

Hallo,

zu 1: die beiden benötigst du um die Namespaces bzw. die daraus entstandene XMLNameTable dem XML-Doc schon beim Aufruf des Konstruktors hinzuzufügen, damit das XML- Dokument damit umgehen kann.

zu 2: CLRFs haben im XML keine Bedeutung, sie werden einfach überlesen. Wenn du dir das nur lesbar anschauen möchtest, kannst du den Internet- Explorer zum anschauen benutzen, der sollte auch den Einzeiler lesbar anzeigen.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell


ZurĂĽck zu NAV 2009

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron