XML 在 SSIS 中验证

XML Validation in SSIS

我有一个 xml 这样的文件

...
<text>
  <font_option>true</font_option>
  <font_size>5</font_size>
</text
...

我需要验证这个 xml 文件。如果 font_option 为真,则 font_size 强制性的 ,如果 font_option 是假的, 那么 font_size 可选的 .

我如何使用 xml 任务在 SSIS 中对此进行验证?

将 XSD 架构文件 (How-To here) 定义到您期望的外部边界,并在控制流中使用 XML 任务。

http://msbitutorials.blogspot.com/2013/11/xml-task-in-ssis-with-example.html

你对第二个属性的条件要求很奇怪。如果您试图限制这些值,您应该 100% 地这样做,尤其是当您试图加载到数据库时。然后,您可以在数据流任务中进一步路由行一次。

SSIS 中有两种验证 XML 文件的方法:

1) XML 任务,简单但有一些限制

2) 脚本任务,更灵活的位需要一些 C#/.NET 知识。

正在使用 SSIS

根据 XSD 验证 XML 文件
  • 如果您没有 XML 架构定义文件,您必须先创建它,例如使用 XML Schema Definition Tool.
  • 为 XML 和 XSD 文件创建新文件连接
  • 将 XML 任务添加到您的控制流(将其连接到处理 XML 文件的数据流任务)。
  • 编辑XML任务:
    • select XML 连接管理器作为输入源类型和源文件
    • 和 XSD 连接管理器作为第二个操作数
    • OperationType 应该是 Validate
    • ValidationType 应该是 XSD.
  • 测试包:运行 使用无效输入使其失败,并使用有效输入观察结果。

如果您的 XSD 非常复杂,可能需要使用脚本任务并使用 code.

验证 XML 文件

关于您关于条件约束的问题:XSD 的基本思想是将验证绑定到元素类型。如果您有一组元素应该以一种方式验证而另一组元素应该以另一种方式验证,那么很明显处理两种不同类型的元素。最简单的解决方案是强制使用 font_size。但是,XSD 1.1 允许