Задача «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»
Дополнительные сведения об установке этих свойств программным способом см. в следующем разделе.
|