In IBM MQ habe ich eine Anforderung, wo ich viele Arten von XML aus der Warteschlange abrufen kann. Die XML-Nachrichten werden an die bereits angegebene xsd angepasst (es gibt 5 xsd - was bedeutet, dass ich 5 verschiedene xml-Dateien erhalten kann). Wenn ich die Nachricht aus der Warteschlange bekomme, möchte ich den Typ von xml wissen (wenn sein xsd1 oder xsd2 oder so weiter)Um die xsd von XML-Nachricht zu identifizieren, die von MQ empfangen wird
Der Grund, warum ich wissen möchte, ist, verwende ich eine JaxB-Schnittstelle mit SAX-Implementierung , für die ich das Java-Objekt geben muss, das der xml als Parameter entspricht. Also muss ich wissen, welche xsd der Eingang ist und ist und den Parameter entsprechend zuweisen.
Die Optionen, die ich habe, ist, eine Eigenschaft in der Kopfzeile der Nachricht festzulegen, aber die Partei, die die Nachricht in MQ löscht, ist nicht bereit.
Welche anderen Optionen habe ich? Kann ich den Dateinamen (von XML) aus dem MQ abrufen und das Xsd basierend auf dem Name der Datei finden? Oder muss ich Sax Parsing und identifizieren Sie das Root-Tag und Ableitung der Xsd-Typ? Gibt es eine andere bessere Option, an die jemand denkt?