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


Задача «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-операций Diff, Merge и Patch требуются два операнда. Первый операнд указывает на исходный XML-документ. Второй операнд также указывает на XML-документ, содержимое которого зависит от требований операции. Например, операция Diff сравнивает два документа, следовательно, второй операнд указывает на другой, похожий XML-документ, с которым сравнивается исходный XML-документ.

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

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

Если в качестве источника задан диспетчер соединения файлов, то указанный диспетчер соединения файлов предоставляет исходные данные. Диспетчер соединения файлов настраивается отдельно от задачи «XML», в которой на него есть ссылка. Строка соединения диспетчера соединения файлов представляет собой путь к XML-файлу. Дополнительные сведения см. в разделе Диспетчер соединения файлов.

В задаче «XML» можно настроить сохранение результата в переменную или в файл. Если выполняется сохранение в файл, то задача «XML» использует для доступа к нему диспетчер соединения файлов. Кроме того, созданные операцией Diff результаты Diffgram можно сохранить в файлы или переменные.

Стандартные операции XML

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

Операция

Описание

Diff

Сравнивает два XML-документа. Операция Diff сравнивает исходный XML-документ в качестве основного со вторым XML-документом, находит различия между ними и записывает их в XML-документ Diffgram. Эта операция содержит свойства для настройки сравнения.

Merge

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

Patch

Добавляет в указанный в XML-документ выходной документ операции Diff (документ Diffgram), чтобы получился новый документ, включающий в себя содержимое документа Diffgram.

Validate

Проверяет соответствие XML-документа определению типа документа (DTD) или схеме XML (XSD).

XPath

Выполняет запросы и вычисления XPath.

XSLT

Выполняет преобразование XSL в XML-документах.

Операция Diff

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

Операция Diff имеет набор параметров для настройки сравнения XML-документов. В следующей таблице приводятся описания дополнительных параметров.

Параметр

Описание

IgnoreComments

Значение параметра указывает, нужно ли сравнивать комментарии.

IgnoreNamespaces

Значение параметра указывает, нужно ли сравнивать URI пространства имен элемента и его имен атрибутов. Если этот параметр имеет значение true, то два элемента с одинаковым локальным именем, но различными пространствами имен будут считаться идентичными.

IgnorePrefixes

Значение параметра показывает, нужно ли сравнивать префиксы элементов и имен атрибутов. Если этот параметр имеет значение true, то два элемента с одинаковым локальным именем, но различными URI и префиксами пространства имен считаются идентичными.

IgnoreXMLDeclaration

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

IgnoreOrderOfChildElements

Значение параметра указывает, нужно ли сравнивать порядок дочерних элементов. Если этот параметр имеет значение true, то дочерние элементы, отличающиеся только по позиции одноуровневых элементов, считаются идентичными.

IgnoreWhiteSpaces

Значение параметра указывает, нужно ли сравнивать пробелы.

IgnoreProcessingInstructions

Значение параметра указывает, нужно ли сравнивать инструкции по обработке.

IgnoreDTD

Значение параметра указывает, нужно ли пропускать DTD.

Операция Merge

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

Операция XPath

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

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

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

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

Операция Validation

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

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

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

ПримечаниеПримечание

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

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

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

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

Пользовательские сообщения для ведения журнала, доступные в задаче «XML»

В приведенной ниже таблице перечислены пользовательские записи журнала для задачи «XML». Дополнительные сведения см. в разделах Реализация ведения журналов в пакетах и Пользовательские сообщения для ведения журнала.

Запись журнала

Описание

XMLOperation

Сообщает сведения об операции, выполняемой задачей

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

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

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

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

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

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

Значок служб Integration Services (маленький)Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.