根据结果​​在SQL脚本中移动xml文件

时间:2012-12-18 08:04:44

标签: xml redhat

我正在寻找一种方法将一些文件根据查询结果移动到RedHat Linux上的“被拒绝”目录。该数据库是Oracle 11gr2。

一次性处理所有四个文件。它们通过FTP进程放在共享上,并且计划的OEM作业每15分钟检查一次XML文件是否存在。

当它发现有要处理的XML文件时,它会选择它们,用xmllint验证它们并将文件复制到工作目录。

从那里,文件将被加载到外部表中,具体取决于查询中WHERE子句的结果。

在加载过程中是否需要将文件移动到rejected文件夹失败或包含一条错误记录时?

我的测试用例中有4个XML文件:

  • 1是正确的。
    • 无问题加载。
  • 1有一个坏记录和一个好记录
    • 正确加载了正确的记录,而错误的记录则没有。但是我想要整个'坏'文件没有被加载,在没有加载到oracle之后,我想将文件移动到'被拒绝'文件夹。
  • 1有XML错误
    • xmllint正确拒绝并移至“已拒绝”文件夹。
  • 1错过了标签内的值。
    • 因为不符合强制值而被拒绝。

提前致谢!

1 个答案:

答案 0 :(得分:0)

针对XSD或DTD验证XML文件可以包括正则表达式。由于您的XSD / DTD将在运行时读入内存,因此您可以根据需要注入实际的正则表达式,以便测试用例完成其工作。

看看例如Regular Expression, pattern matching in xsd了解更多信息。