如何使用 SSIS XML 任务验证 XML 文件(附示例)? 在我们开始示例之前,让我们看看本地文件系统目标文件夹中的数据。下面的屏幕截图显示了该 books.xml 文件中的数据。我们的任务是使用 SSIS XML 任务来验证此 XML 文件。

以下屏幕截图显示了我们将在本示例中使用的 XSD 文件。

使用 SSIS XML 任务验证 XML 文件
要验证 XML 文件,请首先将 XML 任务拖放到“控制流”区域,并将其重命名为“使用 SSIS XML 任务验证 XML 文件”。

双击它将打开 XML 任务编辑器进行配置。请参阅下面的示例来传输 XML 文件并查找差异。
在此 SSIS 示例中,我们正在验证 XML 文件,因此请将 operationType 属性更改为 Validate。

让我们通过选择 SourceType 属性来配置源连接。
- 如果使用存在于本地文件系统中的 XML 文件,请将 Source Connection 选择为 File Connection。
- 如果将源连接存储在变量中,请将 Source Connection 选择为 Variable,然后选择变量名称。
- 如果要直接输入 XML 数据,请将 SourceType 属性选择为 Direct Input。
在本例中,我们将上面指定的 books.xml 文件用作源。因此,我们将 SourceType 属性选择为 File Connection。如果您之前已经创建了 文件连接管理器,请选择已创建的。这里,我们之前没有创建任何连接管理器,所以我们选择 <New Connection..>。

单击 <New Connection..> 选项后,将打开文件连接管理器编辑器进行配置。在本例中,我们要验证现有 XML 文件。因此,我们从 Usage Type 中选择 Existing File 选项。
单击 Browse 按钮从我们的文件系统中选择现有文件。

从下面的图片可以看到,我们选择了目标文件夹中的 books.xml 文件。

ValidationType:此属性用于验证给定的 XML 文件。它有两个选项:
- XSD:如果选择此选项,XML 任务将使用 XML Schema Definition 文件作为验证文件。在本例中,我们使用此选项。
- DTD:如果选择此选项,SSIS XML 任务将使用 Document Type Definition 文件作为验证文件。

我们必须配置第二个操作数类型(请选择验证文件 xsd 或 dtd)。因此,请选择 SecondOperandType 属性。
- 如果使用存在于本地文件系统中的 XSD 文件,请将 SecondOperandType 选择为 File Connection。
- 如果将 XSD 文件存储在变量中,请将 SecondOperandType 选择为 Variable,然后选择变量名称。
- 如果要直接输入 XSD 数据,请将 SecondOperandType 属性选择为 Direct Input。
在本例中,我们将上面指定的 books.xsd 文件用作验证文件。因此,我们将 SecondOperandType 属性选择为 File Connection。

如果您之前已经创建了文件连接管理器,请选择已创建的。我们之前没有创建任何连接管理器,所以我们选择 <New Connection..>。

从下面的屏幕截图中可以看到,我们选择了目标文件夹中的 books.xsd 文件。

FailOnValidationFail:此属性有两个选项:True 和 False。如果我们将此属性设置为 TRUE,则在出现任何验证问题时,XML 任务将失败。

单击 OK 完成使用 SSIS XML 任务包的配置。让我们运行并查看我们的 books.xml 文件是否有效。

上图显示我们的 SSIS XML 任务验证了 XML 文件包运行成功。
现在,让我们更改 books.xml 文件。从下面可以看到,我们为 book id bk001 添加了 <republished_date> 节点。

让我们重新运行 SSIS XML 任务以验证 XML 文件包。从下面的屏幕截图可以看到,我们的包失败了。

让我们打开 Progress 选项卡查看问题。

提示:在实际操作中,我们将输出结果存储在变量中,然后可能会将信息通过电子邮件发送给包开发人员。
例如,让我们将输出存储在本地文件系统中的文本文件中。为此,我们首先将 SaveOperationResult 属性设置为 TRUE 并配置目标。从下面的屏幕截图可以看到,我们正在选择 yes.txt 文件。
- OverwriteDetination:此属性有两个选项:True 和 False。如果我们将此属性设置为 true,XML 任务将覆盖目标路径中现有文件。
- ValidationDetails:此属性有两个选项:True 和 False。如果将此属性设置为 true,输出文件将包含有关错误的详细信息,包括行号和位置;否则,将不包含其详细信息。

让我们打开并运行“使用 SSIS XML 任务验证 XML 文件”包,然后打开 yes.txt 文件查看结果。
