Proper Verwendung von HTTP-Statuscodes in einem "Validierungs" -Server

Während der Daten, die meine Anwendung an einen SOA-Server eines Drittanbieters sendet, handelt es sich um komplexe XML-Dateien. Der Serverbesitzer stellt die XML-Schemata .xsd) und da der Server ungültige XML-Dateien mit einer bedeutungslosen Nachricht ablehnt, muss ich sie vor dem Senden lokal validieren.

Ich könnte einen eigenständigen XML-Schema-Validator verwenden, aber sie sind langsam, hauptsächlich wegen der Zeit, die zum Analysieren der Schemadateien erforderlich ist. Also schrieb ich meinen eigenen Schema-Validator (in Java, wenn das wichtig ist) in Form einesHTTP Server Mit dieser Option werden die bereits analysierten Schemata zwischengespeichert.

Das Problem ist: Im Verlauf des Validierungsprozesses können viele Dinge schief gehen. Andere als unerwartete Ausnahmen und erfolgreiche Validierung:

der Server findet die angegebene Schemadatei möglicherweise nichtdie angegebene Datei ist möglicherweise keine gültige Schemadateidie XML ist ungültig für die Schemadatei

Da es sich um einen HTTP-Server handelt, möchte ich dem Client ein aussagekräftigesstatus codes. Sollte der Server mit einem @ antwort 400 Error Ungültige Anforderun) für alle oben genannten Fälle? Oder sie haben nichts mit HTTP zu tun und es sollte @ antwort 200 mit einer Nachricht im Körper? Irgendwelche anderen Vorschläge?

Aktualisiere: Die Hauptanwendung ist in @ geschriebeRubi, das keine gute XML-Schemavalidierungsbibliothek hat, sodass ein separater Validierungsserver nicht übermäßig entwickelt wird.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage