XML gegen XSD validieren

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

XML gegen XSD validieren

Beitrag von ralf.wenzel (Top Expert / 3942 / 201 / 281 ) »
Moin,

ich dachte, ich hätte die Frage schon gestellt, finde sie aber hier nicht wieder. Gegeben sei ein ABAP, der ein XML erzeugt. Basis dafür ist eine XSD-Datei des Kunden.

Bisheriges Verfahren: Der Entwickler schreibt auf Basis der XSD einen oder mehrere Unit-Tests, mit der einige Fälle durchlaufen werden.

Das Problem ist: Es wird nicht jede XML geprüft und wenn der Entwickler beim Unit-Test-Schreiben eine Abweichung zu dem codiert, was in der XSD steht, ist der Test richtig, die Datei aber trotzdem falsch.

Fragen daher:
  • Gibt es einen Weg, im Rahmen eines Unit-Tests nicht gegen eine selbst definierte "Musterlösung", sondern gegen eine XSD zu verproben?
  • Gibt es einen Weg, JEDE Datei vor dem Übertragen an das empfangende System gegen eine XSD zu verproben? Also auch für den produktiven Betrieb? Das würde es dem Entwickler erlauben, auf fehlerhafte XMLs zu reagieren.

Gruß und vielen Dank

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: XML gegen XSD validieren

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Hilft Programm RPCXMLK0_VALIDATE weiter?

Re: XML gegen XSD validieren

Beitrag von ralf.wenzel (Top Expert / 3942 / 201 / 281 ) »
Das kannte ich noch gar nicht....
Microsoft® XML Core Services (MSXML) 6.0 Software Development Kit must b e installed on your computer in side-by-side mode.
OMG


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: XML gegen XSD validieren

Beitrag von msfox (Specialist / 372 / 57 / 76 ) »
Stehe gerade vor dem gleichen Problem...
Konnstest du den Report RPCXMLK0_VALIDATE nutzen?
Oder hast du nur Teile daraus verwendet.
Ich bin mal grob über den Report geflogen, welcher WS_*-Fubas verwendet.
Aber schon WS_QUERY (=obsolte!) prüft, ob eine GUI offen ist. Ich vermute, dass die Uni-Tests im BATCH laufen.
--
Edit: Ich hab mal weiter geschaut. Intern wird die Klasse CL_HRPAYCA_XML genutzt. Die nutzt in get_file() ein ActiveXObject. Das parsen/prüfen scheint also über ActivX zu gehen, was nicht so glücklich ist.

Re: XML gegen XSD validieren

Beitrag von ralf.wenzel (Top Expert / 3942 / 201 / 281 ) »
Nein, wir sind von dem Anspruch abgerückt, dass jedes XML verprobt wird, weil das auch von der Laufzeit her nicht zu machen ist. Wir haben ziemlich viele XMLs im laufenden Betrieb.

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: XML gegen XSD validieren

Beitrag von msfox (Specialist / 372 / 57 / 76 ) »
Ich habe es jetzt mit XMLLINT also Konsolen-Befehl. Ich hatte gehofft, es gäbe eine "sauberer" Lösung.

Re: XML gegen XSD validieren

Beitrag von IHe (Specialist / 152 / 36 / 49 ) »
Wir machen es eher anders herum: Wir generieren aus der XSD eine WSDL und daraus wiederum in SAP einen Service Consumer, mit welchem wir standardisiert ohne individuelles Coding XSD/WSDL-konforme XML erzeugen.
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Re: XML gegen XSD validieren

Beitrag von ralf.wenzel (Top Expert / 3942 / 201 / 281 ) »
IHe hat geschrieben:
Gestern 12:52
Wir machen es eher anders herum: Wir generieren aus der XSD eine WSDL und daraus wiederum in SAP einen Service Consumer, mit welchem wir standardisiert ohne individuelles Coding XSD/WSDL-konforme XML erzeugen.
Darüber wüsste ich gern mehr.

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: XML gegen XSD validieren

Beitrag von msfox (Specialist / 372 / 57 / 76 ) »
IHe hat geschrieben:
Gestern 12:52
Wir machen es eher anders herum:
Wir bekommen von extern eine XML und müssen prüfen, ob dieses dem XSD entspricht.
Es gibt zwar auch ein CALL TRANSFORMATION, aber das liest nicht alle Werte und liefert daher nicht immer einen Fehler, wenn die XML nicht dem XSD entspricht.
Das Objekt hinter CALL TRANSFORMTATION wurden nicht direkt aus dem XSD genommen.

Re: XML gegen XSD validieren

Beitrag von IHe (Specialist / 152 / 36 / 49 ) »
msfox hat geschrieben:
Gestern 13:36
IHe hat geschrieben:
Gestern 12:52
Wir machen es eher anders herum:
Wir bekommen von extern eine XML und müssen prüfen, ob dieses dem XSD entspricht.
Es gibt zwar auch ein CALL TRANSFORMATION, aber das liest nicht alle Werte und liefert daher nicht immer einen Fehler, wenn die XML nicht dem XSD entspricht.
Das Objekt hinter CALL TRANSFORMTATION wurden nicht direkt aus dem XSD genommen.
Den Fall haben wir auch, welcher ebenfalls mittels Service Consumer realisiert wird:

Code: Alles auswählen.

    TRY.
        cl_proxy_xml_transform=>xml_xstring_to_abap( EXPORTING ddic_type = lc_datatype
                                                               xml       = lv_xml
                                                     IMPORTING abap_data = ms_xml_root ).
      CATCH cx_proxy_fault.
"Fehlerhandling...
      CATCH cx_transformation_error .
"Fehlerhandling...
    ENDTRY.
Aber ja, das stimmt - eine echte Validierung gegen XSD ist dies sicherlich nicht. Das findet bei uns wiederum außerhalb von SAP beim Bereitstellen der XML statt.
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3577
Views
RFC Verbindung validieren
von JohnLocklay » 24.10.2017 16:49 • Verfasst in ABAP® Core
0
Antw.
1629
Views
XML gegen externe DTD validieren
von Bernd Schneider » 06.06.2007 12:48 • Verfasst in ABAP® Core
7
Antw.
9998
Views
SM30 Felder Validieren Programieren von Zeitpunkten
von Anfänger » 20.11.2015 09:34 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Von der XSD zum XML
vor 7 Stunden von ralf.wenzel 8 / 4042
XML gegen XSD validieren
vor 10 Stunden von IHe 10 / 643
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 5 / 3723

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Von der XSD zum XML
vor 7 Stunden von ralf.wenzel 8 / 4042
XML gegen XSD validieren
vor 10 Stunden von IHe 10 / 643
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 5 / 3723

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor einer Woche von snooga87 1 / 2234
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 5446