Правильное использование кодов состояния HTTP на сервере проверки
Среди данных, которые мое приложение отправляет на сторонний SOA-сервер, - сложные XML-файлы. Владелец сервера предоставляет схемы XML (.xsd
) и, поскольку сервер отклоняет недопустимые XML-сообщения с бессмысленным сообщением, мне необходимо проверить их локально перед отправкой.
Я мог бы использовать автономный валидатор XML-схемы, но они медленные, в основном из-за времени, необходимого для разбора файлов схемы. Поэтому я написал свой собственный валидатор схемы (на Java, если это имеет значение) в формеHTTP-сервер который кэширует уже проанализированные схемы.
Проблема в том, что многие вещи могут пойти не так в процессе проверки. Кроме непредвиденных исключений и успешной проверки:
сервер может не найти указанный файл схемыуказанный файл не может быть допустимым файлом схемыXML недопустим в отношении файла схемыПоскольку это HTTP-сервер, я хотел бы предоставить клиенту значимоекоды состояния, Если сервер отвечает с400 ошибка (Плохой запрос) для всех вышеперечисленных случаев? Или они не имеют ничего общего с HTTP, и он должен ответить200 с сообщением в теле? Любое другое предложение?
Обновить: основное приложение написано вРубин, которая не имеет хорошей библиотеки проверки схемы XML, поэтому отдельный сервер проверки не является чрезмерной разработкой.