XJ
Общее описание
Блок XJ применяется для прямой двусторонней конвертации данных между форматами XML и JSON без создания промежуточных Java‑объектов. Компонент встраивается в поток обработки сообщений и преобразует полезную нагрузку (payload) текущего сообщения из одного формата в другой — согласно заданному направлению (JSON -> XML или XML -> JSON) и загруженной схеме.
Настройка блока
В данном разделе описаны параметры блока XJ, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Загрузить схему или темплейт | В данном поле вы можете выбрать или загрузить схему или шаблон, выбрав его из списка загруженных файлов или в файловом навигаторе. | Файл | ||
| Allow StAX | AllowStAX | Параметр определяет, разрешено ли использовать StAX (Streaming API for XML) в качестве реализации интерфейса javax.xml.transform.Source при выполнении XSLT‑преобразований. | True | Логическое значение |
| Allow Template From Header | AllowTemplateFromHeader | Определяет, разрешать ли использовать шаблон ресурса из заголовка или нет (по умолчанию false). Включение этого параметра позволяет указывать динамические шаблоны через заголовок сообщения. Однако это может рассматриваться как потенциальная уязвимость системы безопасности, если заголовок исходит от злоумышленника, поэтому используйте его с осторожностью. | False | Логическое значение |
| Content Cache | ContentCache | Определяет, кэшировать ли содержимое ресурса (файл таблицы стилей) при его загрузке на старте. Если установлено значение false, файл таблицы стилей будет перезагружаться при обработке каждого сообщения. | True | Логическое значение |
| Delete Output File | DeleteOutputFile | Если значение параметра Output установлено как file, то этот параметр определяет, следует ли удалять выходной файл после завершения обработки. Например, если выходной файл является временным, его лучше удалять после использования. | False | Логическое значение |
| Fail On Null Body | FailOnNullBody | Определяет, следует ли генерировать исключение, если тело входного сообщения пустое (NULL). | True | Логическое значение |
| Output | Output | Определяет тип вывода. Возможные значения:
java.io.File. Для файла вы должны указать имя файла в заголовке IN с ключом XsltConstants.XSLT_FILE_NAME. Кроме того, все пути к файлу должны быть созданы заранее, в противном случае во время выполнения будет сгенерировано исключение. | Список | |
| Transform Direction | TransformDirection | Задает направление преобразования данных в блоке XJ. Определяет, какой формат будет исходным, а какой — целевым при конвертации полезной нагрузки (payload) сообщения. Допустимые значения: - XML2JSON — преобразование из формата XML в JSON - JSON2XML — преобразование из формата JSON в XML На основе выбранного направления компонент выбирает соответствующий алгоритм парсинга и сериализации данных без создания промежуточных Java‑объектов. | Список | |
| Transformer Cache Size | transformerCacheSize | Количество объектов javax.xml.transform.Transformer, которые кэшируются для повторного использования, что позволяет избежать вызовов Template.newTransformer(). | Целочисленное значение |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Lazy Start Producer | LazyStartProducer | Определяет, должен ли отправитель стартовать в отложенном режиме, т. е. при получении первого сообщения. Для выявления ошибок и отладки при активации потока выставьте значение False. Если поток используется редко или необходима его быстрая активация, выставьте значение True. Учтите, что обработка первого сообщения в этом случае будет замедлена. | False | Логическое значение |
| Entity Resolver | EntityResolver | Задает пользовательский обработчик, который указывает XSLT‑блоку, где найти дополнительные ресурсы (например, DTD, внешние схемы) для трансформации XML с использованием движка SAXSource. | Строка | |
| Error Listener | ErrorListener | Позволяет настроить пользовательский обработчик ошибок, перехватывающий предупреждения и ошибки во время XSLT‑трансформации. Примечание: При указании пользовательского обработчика стандартный обработчик перестает действовать. Используйте эту опцию с осторожностью. | Строка | |
| Result Handler Factory | ResultHandlerFactory | Позволяет использовать пользовательский интерфейс для обработки результата трансформации. | Строка | |
| Saxon Configuration | SaxonConfiguration | Позволяет задать пользовательскую конфигурацию процессора Saxon для расширенной настройки XSLT‑преобразований. | Строка | |
| Saxon Extension Functions | SaxonExtensionFunctions | Позволяет использовать пользовательские функции расширения Saxon (net.sf.saxon.lib.ExtensionFunctionDefinition) в XSLT‑преобразованиях. | Строка | |
| Secure Processing | SecureProcessing | Включает безопасную обработку XML согласно javax.xml.XMLConstants (защита от XXE и других атак). | True | Логическое значение |
| Transformer Factory | TransformerFactory | Позволяет задать пользовательскую фабрику XSLT‑трансформеров для расширенной настройки процесса трансформации XML. | Строка | |
| Transformer Factory Class | TransformerFactoryClass | Задает полное и однозначное имя пользовательского класса для XSLT‑трансформации. | Строка | |
| Transformer Factory Configuration Strategy | TransformerFactoryConfigurationStrategy | Задает стратегию настройки, применяемую к только что созданным экземплярам классов трансформации. | Строка | |
| Uri Resolver | UriResolver | Задает пользовательский обработчик URI. | Строка | |
| Xslt Message Logger | XsltMessageLogger | Получатель сообщений, сгенерированных во время преобразований XSLT. | Строка | |
| Disabled | Disabled | Определяет, будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |