Ich habe es mir zwar angetan, xsds zu lesen (mit XML-SAX) um meinen Kolleginnen ein Framework zum einfacheren Lesen und Schreiben von darauf basierenden XML-Dateien zu basteln, aber einen Validator - nein, das verweigere ich und sollte jeder (RPG-)Programmierer verweigern.

Das gibt's gratis fertig, das darf auch gern in Java programmiert sein, z.B. Xerces lässt sich ganz gut verwenden.

Und nur wenn der validierende Parser zufrieden ist, geht man dann mit dem RPG ran. Ansonsten mit Fehlermeldung zurück zum Absender.

Die RPG-XML-Operationscodes prüfen nur das, was sie selber dringend zum Überleben brauchen.

Und um Probleme wie gleichnamige Elemente/Attribute mit verschiedener Bedeutung zu lösen, kommt man um den kompletten "Pfad" nicht herum. Beim Start des Elements / Attributs kommt der Name mit einem / hinten an den Pfad-String dran, beim Ende wieder weg.
Dann hat man z.B. /Customer/Id und /Supplier/Id, auf die man seine Programmfelder "mappen" muss, und hat kein Problem mehr.