Разбор XML
Описание
Компонент разбирает таблицу данных из столбца входной таблицы, в ячейках которого содержатся документы XML в строковом виде. Все документы из столбца должны соответствовать подключенной XSD-схеме.
Порты
Вход
- — Подключение к источнику XSD-схемы — подключение настроенного ранее подключения к файлам XSD-схем.
- — Управляющие переменные (переменные), необязательный.
- — Источник данных — таблица данных, содержащая ячейки с документами XML.
Выход
— Набор данных — таблица данных, разобранных из документов XML.
- Поля, наличие которых задается пользователем:
- Идентификатор поля — показывает, из какого именно документа была разобрана конкретная строка.
- Поля, наличие которых задается пользователем:
— Ошибки и коды завершения — таблица логов разбора, имеет следующую структуру:
- Обязательные поля:
- Код завершения — содержит значения кодов разбора для каждого документа.
- Поля, наличие которых задается пользователем:
- Идентификатор поля — показывает, какому документу соответствует запись в таблице логов;
- Описание ошибки — описание кодов завершения.
- Обязательные поля:
Мастер настройки
Шаг 1. Параметры разбора XML
Имя столбца — выбор столбца с документами XML.
Идентификация XML-документа — в этой области определяется наличие столбца идентификатора в разбираемом наборе данных и в таблице логов:
- Один запрос на весь набор данных (используется по умолчанию) — входной набор данных содержит только один XML-документ. В выходной набор не добавляется столбец Идентификатор документа.
- Один запрос в каждой строке входного набора — в выходной набор добавляется столбец Идентификатор документа, где в качестве значений указан номер строки входного набора, в которой содержится документ. Первой строке соответствует идентификатор 0.
- Идентификатор запроса — поле входного набора — необходимо выбрать идентификатор из списка полей входного набора. В выходной набор данных добавляется столбец Идентификатор документа, который содержит значения поля, выбранного в качестве идентификатора.
Примечание: если входной набор данных пустой, то на выходе количество строк равно нулю при любых настройках параметра Идентификация XML-документа.
Останавливаться при ошибках — данный флаг отменит разбор при обнаружении первой ошибки.
Разэкранировать сущности XML — применяется в том случае, если документы разбираются из другого документа XML, в котором они были заэкранированы. При отсутствии данного флага разбор документа, начинающегося, например, с объявления
<
<?xml version="1.0" encoding="UTF-8"?>
выдаст ошибку, а при наличии флага узел интерпретирует такое объявление как корректное:
<?xml version=«1.0» encoding=«UTF-8»?>
- Выдавать описание кодов завершения — в таблицу с логами будет добавлен столбец "Описание ошибки".
Шаг 2. Импортируемые поля
Подключение — состояние подключения к XSD-схеме.
Корневой элемент — выбор корневого элемента XSD-схемы, в соответствии с которым данные будут разбираться. Ниже расположена область, отображающая иерархическую структуру выбранного корневого элемента — в ней следует отметить флагами элементы, которые сформируют поля разбираемой таблицы.
Временная зона по умолчанию — значения с типом Дата/Время преобразуются при разборе из XML по следующему алгоритму:
- Если значение содержит указание временной зоны, оно преобразуется к текущей временной зоне сервера Loginom.
- Если значение не содержит указание временной зоны, то:
- если Временная зона по умолчанию задана, значение преобразуется к текущей временной зоне сервера Loginom в предположении, что имеет временную зону, указанную в параметре Временная зона по умолчанию.
- если Временная зона по умолчанию не задана, значение остается без изменений.
Дублировать единичные значения — если в составе последовательности имеется единичный элемент и вложенная последовательность, значения единичного элемента будут продублированы для каждой строки, образованной из вложенной последовательности.
Проверять на строгое соответствие XSD — при установке флага производится валидация XML на строгое соответствие XSD схеме. В противном случае проверка производится в упрощенном, ускоренном режиме. Процесс проверки в упрощенном режиме происходит быстрее, однако не гарантирует корректный разбор данных из XML в случае, если имеются невыявленные ошибки валидации.
Генерировать составные метки полей — при наличии данного флага в каждой метке поля будет отражена иерархия относительно корневого элемента. Например, составная метка "ROOT|PERSON|ACCES-LEVEL" будет сформирована для поля разобранной таблицы, содержащего данные атрибута "ACCESS-LEVEL" элемента "PERSON" из корневого элемента "ROOT" документа. При отсутствии флага поле получит название "ACCESS-LEVEL".