XsdValidation#
Действие XsdValidation предназначено для валидации сообщения по XSD схеме или по WSDL.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
validation_schema |
+ |
{type: file, path: путь, wsdlToXsd: True:False} |
Обязательный параметр, описывающий относительный путь к схеме валидации от каталога ресурсов профиля и флаг необходимости преобразования wsdl в xsd (для случаев, когда валидация осуществляется по WSDL) - который по умолчанию равен Null. |
limits |
- |
элемент, имеющий структуру вида: {параметр: целочисленное значение, … , параметр: целочисленное значение} |
Задает ограничения на парсинг XML документа. Возможные элементы для параметра limits описаны в разделе "Валидация по wsdl/xsd схеме (validator_xsd)", параметры request_limits/response_limits. |
Пример:
chains:
response_chains:
- actions:
- action: XsdValidation
conditions:
- {var: $request_uri, operator: '~', val: '^/request/xsd'}
params:
- schema: {type: file, path: schemes/request_schema.xsd}
- action: XsdValidation
conditions:
- {var: $request_uri, operator: '~', val: '^/request/wsdl'}
params:
- schema: {type: file, path: schemes/request_schema.wsdl, wsdlToXsd: True}
message: $clj_request_body
В приведенном примере, в зависимости от того, по какому url приходит запрос, применяется либо валидация по заданной схеме xsd, либо по wsdl. В обоих случаях в качестве валидируемого объекта выступает тело запроса. Обратите внимание, что запросы/ответы с другими отправленными/полученными методами в текущей конфигурации игнорируются. Если мы хотим предпринимать какие-либо действия, то необходимо либо определять действия ConditionChecker для блокировки таких запросов/ответов, либо другие проверяющие действия.
В случае использования WSDL, необходимо кроме WSDL в ресурсы подкладывать также все схемы, на которые имеются ссылки в WSDL, кроме ряда стандартных, идущих в поставке.
Заполняемые переменные#
По результатам своего выполнения, действие JsonValidation может заполнять следующие переменные:
clj_validation_schema - путь к схеме валидации, которая применялась для проверки;
clj_validation_error_code - код ошибки;
clj_validation_error_description - расшифровка кода ошибки;
clj_validation_error_description_ext - подробное описание ошибок.