Поделиться через


Задача «XML»

Задача XML используется для работы с XML-данными. С помощью этой задачи пакет может извлекать XML-документы, применять операции к документам с помощью таблиц стилей XSLT и выражений XPath, объединять несколько документов или проверять, сравнивать и сохранять обновленные документы в файлах и переменных.

Эта задача позволяет пакету служб Integration Services динамически изменять XML-документы во время выполнения. Задачу XML можно использовать для следующих целей:

  • Переформатируйте XML-документ. Например, задача может получить доступ к отчету, который находится в XML-файле, и динамически применить таблицу стилей XSLT для настройки презентации документа.

  • Выберите разделы XML-документа. Например, задача может получить доступ к отчету, который находится в XML-файле, и динамически применить выражение XPath для выбора раздела документа. Операция также может получать и обрабатывать значения в документе.

  • Слияние документов из многих источников. Например, задача может скачивать отчеты из нескольких источников и динамически объединять их в один комплексный XML-документ.

  • Проверьте XML-документ и при необходимости получите подробные выходные данные об ошибках. Дополнительные сведения см. в разделе "Проверка XML" с помощью задачи XML.

Xml-данные можно включить в поток данных с помощью источника XML для извлечения значений из XML-документа. Дополнительные сведения см. в xml-источнике.

Операции XML

Первое действие, выполняемое задачей XML, заключается в получении определенного XML-документа. Это действие встроено в задачу XML и выполняется автоматически. Полученный XML-документ используется в качестве источника данных для операции, выполняемой задачей XML.

Для операций XML Diff, Merge и Patch требуется два операнда. Первый операнд указывает исходный XML-документ. Второй операнд также указывает XML-документ, содержимое которого зависит от требований операции. Например, операция Diff сравнивает два документа; Поэтому второй операнд указывает другой, аналогичный XML-документу, с которым сравнивается исходный XML-документ.

Задача XML может использовать переменную или диспетчер соединений файлов в качестве источника или включить XML-данные в свойство задачи.

Если источник является переменной, указанная переменная содержит путь к XML-документу.

Если источник является диспетчером подключений к файлам, указанный диспетчер соединений файлов предоставляет исходные сведения. Диспетчер соединений файлов настраивается отдельно от задачи XML и упоминается в задаче XML. Строка подключения диспетчера соединений файлов указывает путь к XML-файлу. Дополнительные сведения см. в статье File Connection Manager.

Задача XML можно настроить для сохранения результата операции в переменной или в файл. При сохранении в файл xml-задача использует диспетчер соединений файлов для доступа к файлу. Вы также можете сохранить результаты диффграммы, созданной операцией Diff, в файлы и переменные.

Предопределенные операции XML

Задача XML включает предопределенный набор операций для работы с XML-документами. Данные операции описываются в следующей таблице.

Операция Описание
Дифф Сравнивает два XML-документа. Используя исходный XML-документ в качестве базового документа, операция Diff сравнивает его со вторым XML-документом, обнаруживает их различия и записывает различия в документ Diffgram XML. Эта операция включает свойства для настройки сравнения.
Слияние Объединяет два XML-документа. Используя исходный XML-документ в качестве базового документа, операция слияния добавляет содержимое второго документа в базовый документ. Операция может указать расположение слияния в базовом документе.
Патч Применяет выходные данные операции Diff, называемой документом Diffgram, к XML-документу, чтобы создать новый родительский документ, содержащий содержимое из документа Diffgram.
Подтвердить Проверяет XML-документ по схеме определения типа документа (DTD) или определения схемы XML (XSD).
XPath Выполняет запросы и оценки XPath.
XSLT Выполняет преобразования XSL в XML-документах.

Операция диффа

Операцию Diff можно настроить для использования другого алгоритма сравнения в зависимости от того, должна ли сравнение быть быстрой или точной. Также можно настроить операцию для автоматического выбора быстрого или точного сравнения на основе размера сравниваемых документов.

Операция Diff включает набор параметров, которые настраивают сравнение XML. Параметры рассматриваются в таблице ниже.

Вариант Описание
IgnoreComments Значение, указывающее, сравниваются ли узлы комментариев.
IgnoreNamespaces Значение, указывающее, сравниваются ли универсальный идентификатор ресурса (URI) пространства имен элемента и имена его атрибутов. Если этот параметр установлен на true, два элемента с одинаковым локальным именем, но различным пространством имен считаются идентичными.
IgnorePrefixes Значение, указывающее, сравниваются ли префиксы имен элементов и атрибутов. Если этот параметр установлен на true,, два элемента с одинаковым локальным именем, но разными URI пространства имен и префиксом считаются идентичными.
IgnoreXMLDeclaration Значение, указывающее, сравниваются ли объявления XML.
IgnoreOrderOfChildElements Значение, указывающее, сравнивается ли порядок дочерних элементов. Если этот параметр имеет trueзначение , дочерние элементы, которые отличаются только в их положении в списке братьев и сестер, считаются идентичными.
IgnoreWhiteSpaces Значение, указывающее, сравниваются ли пробелы.
IgnoreProcessingInstructions Значение, указывающее, сравниваются ли инструкции по обработке.
IgnoreDTDD Значение, указывающее, игнорируется ли DTD.

Операция слияния

При использовании выражения XPath для определения места слияния в исходном документе ожидается, что это выражение вернет единственный узел. Если инструкция возвращает несколько узлов, используется только первый узел. Содержимое второго документа объединяется с первым узлом, который возвращает запрос XPath.

Операция XPath

Операцию XPath можно настроить для использования различных типов функций XPath.

  • Выберите параметр "Оценка" , чтобы реализовать функции XPath, такие как sum().

  • Выберите параметр списка узлов , чтобы вернуть выбранные узлы в виде фрагмента XML.

  • Выберите параметр "Значения" , чтобы вернуть внутреннее текстовое значение всех выбранных узлов, объединенных в строку.

Операция проверки

Операцию проверки можно настроить для использования схемы определения типа документа (DTD) или определения схемы XML (XSD).

Включите ValidationDetails, чтобы получить подробный вывод об ошибках. Дополнительные сведения см. в разделе "Проверка XML" с помощью задачи XML.

Кодировка XML-документа

Задача XML поддерживает слияние только документов Юникода. Это означает, что задача может применять операцию слияния только к документам с кодировкой Юникода. Использование других кодировок приведет к сбою задачи XML.

Замечание

Операции Diff и Patch включают возможность игнорировать объявление XML во втором операнде XML-данных, что позволяет использовать документы с другими кодировками в этих операциях.

Чтобы убедиться, что XML-документ можно использовать, просмотрите декларацию XML. Объявление должно явно указывать UTF-8, указывающее 8-разрядную кодировку Юникода.

В следующем теге показана 8-разрядная кодировка Юникода.

<?xml version="1.0" encoding="UTF-8"?>

Доступны настраиваемые журнальные сообщения для задачи XML

В следующей таблице описана настраиваемая запись журнала для задачи XML. Дополнительные сведения см. в разделе логирование Integration Services (SSIS) и пользовательские сообщения для логирования.

Запись журнала Описание
XMLOperation Предоставляет сведения об операции, выполняемой задачей

Настройка задачи XML

Свойства могут быть заданы с помощью конструктора SSIS или программным путем.

Чтобы получить дополнительную информацию о свойствах, которые можно задать в конструкторе SSIS, щелкните один из следующих разделов:

Дополнительные сведения о настройке свойств в конструкторе служб SSIS см. в следующем разделе:

Программная настройка задачи XML

Дополнительные сведения об установке этих свойств программными средствами см. в следующем разделе.

Задание свойств задач или контейнеров